С здесь :
Оператор ожидания используется для ожидания обещания.Его можно использовать только внутри асинхронной функции.
Проблема в том, что вы ожидаете функцию, которая не возвращает обещание.Вместо этого ваша функция async filterPspDeliveries
возвращает массив PspDelivery.
Кроме того, вам не нужно ключевое слово async
для метода filterPspDeliveries
, поскольку вы ничего не ожидаете.
Решение может быть либо:
Решение 1
Удалите ключевое слово await
:
for(let psp of pspList){
let tmpDeliveryList = this.filterPspDeliveries(psp.deliveryList);
psp.deliveryList = tmpDeliveryList;
}
Решение 2
Сохранить await
ключевое слово, но возвращая обещание в filterPspDeliveries
:
filterPspDeliveries(pspDeliveryList: PspDelivery[]): Promise<PspDelivery[]> {
try {
return new Promise(resolve => {
let result = pspDeliveryList.filter((pspDelivery) => {
return (pspDelivery.packageList.length > 0);
})
resolve(result);
return;
});
} catch (e) {
console.log(e);
}
}
for(let psp of pspList){
let tmpDeliveryList = await this.filterPspDeliveries(psp.deliveryList);
psp.deliveryList = tmpDeliveryList;
}
Вы можете проверить его, работая с обоими решениями здесь .