У меня неприятная проблема, и я не могу понять, почему это происходит
У меня есть следующая функция:
public async PageResult(searchRecord:Search,authorization:string,pageNumber:number,databaseName:string){
some codes .....
return new Promise((resolve, reject) => {
this._resultsDatastore.bulkInsert(
databaseName,
objects
).then(succ => {
// I can see succ is printed successfully in console
console.log(succ);
// when I resolve it here I assume I am returning the result
resolve(succ)
}, err => {
console.log(err);
reject(err)
})
})
}
Итак, как вы можете видеть, я разрешаю (su cc ) и таким образом я возвращаю su cc функции вызывающей стороны
Теперь у меня есть:
public async loadResults(
searchId: string,
authorization: string
) {
some code....
const results = udsQuery.pages.map(async (pageNumber: number) => await this.PageResult(searchRecord,authorization,pageNumber,databaseName))
let all: any=[];
await Promise.all(results).catch(e => {
console.log("^^^^^^^^^^^^^^^^^^^^^EEEERRRRRROR^^^^^^^^^^^^^^^^^^^^^^");
}).then(res=>{
console.log("suuuuuuuuuuuuuuucesssssssssssssss");
// issue is here: below prints undefined though succ has value
console.log(res);
all.push(res);
return res;
});
}
Итак, теперь я вызываю PageResult на карте и использую promis.all для восстановите его вместо su cc, который я возвратил в PageResult. Я получаю неопределенное значение. См. этот раздел в приведенном выше коде:
console.log("suuuuuuuuuuuuuuucesssssssssssssss");
// issue is here: below prints undefined though succ has value
console.log(res);
Я что-то упустил?