Я использую драйвер MongoDB для подключения Монго:машинописи от обратного вызова обратно функции
public listUsers(filterSurname?:string):any {
if (this.connected) {
debug.log(this.db);
var results;
this.db.collection('userProfiles').find({}).toArray((err:Error, res:any[])=> {
if (err) return 'getting results error'
else {
results=res;
results = res;
}
return res;
});
}
debug.log('sending results' + results);
if (results !== null) {
return results;
}
else return 'connection error';
return 'db unknown error'
}
функция массив имеет следующую подпись:
toArray(callback: (err: Error, results: any[]) => any) : void;
Я не могу изменить singnature, как я могу вернуть значение обратно к функции от обратного вызова? Есть ли какой-либо способ, кроме одного обратного вызова? Или машинописный текст, обеспечивающий одно и то же адское решение обратного вызова?
Если вы не можете сделать что-то в JS, вы не можете сделать то же самое в TS. Возможно, вы должны инкапсулировать 'toArray' в обещание. – Paleo