【发布时间】:2021-10-30 13:26:03
【问题描述】:
我在打字稿中有一个 for 循环。循环的返回结果将用作另一个方法的参数。无论我如何尝试,我的代码总是在循环结束之前返回一个结果。应该设置多长的等待时间才能在循环结束后得到返回结果?或者任何其他解决方案将不胜感激。
private async findMainItemId() {
let mainItem = {id: 1, price: 0};
mainItem.id = this.itemIds[0];
for (let i = 0; i <= this.itemIds.length; i ++)
{
this.checkoutService.getShippingFees(this.itemIds[i]).subscribe((resp: IDeliveryType[]) => {
let itemDeliveryTypes = resp.filter(s => s.applied === true);
let standardPrice = itemDeliveryTypes.find(dt => dt.name === 'standard').price;
if ( standardPrice > mainItem.price)
{
mainItem.id = this.itemIds[i].id;
mainItem.price = standardPrice;
};
})
}
return mainItem.id;
}
【问题讨论】:
-
试过在调用这个方法的代码中使用
await?这个方法中的subscribe方法需要await吗?
标签: angular typescript for-loop async-await