【发布时间】:2021-12-07 00:54:40
【问题描述】:
我知道这是一个常见的问题,但我遇到了一些问题,试图触发一个函数,只有当一个承诺被返回时。我也想获取 promise 返回的值。
- 所以我想访问一个 Angular 服务,它似乎在进行 API 调用。
- 等待承诺解决。
- 然后将返回的承诺存储为值。
- 然后触发函数
hello()
似乎当我在承诺解决之前运行下面的代码validPassengerId 和hello()console.logs。
如何将这段代码重写为:
-
等待承诺解决。
-
然后获取已解决的承诺的值 - validPassengerId。 (然后 console.log 它)。
-
然后触发函数
hello()?function hello() { console.log("hello"); }; const promise = new Promise((resolve, reject) => { let validPassengerId = _funnelBasketLuggageService.FindValidPassengerIdForBag(PassengerIds, bagsAssignedToPassengers, bag); resolve(validPassengerId); }); promise.then(validPassengerId => { console.log("validPassengerId", validPassengerId); hello(); });
【问题讨论】:
-
我假设函数“_funnelBasketLuggageService.FindValidPassengerIdForBag(PassengerIds, bagAssignedToPassengers, bag)”是异步的,你能验证一下吗?
标签: javascript asynchronous ecmascript-6 async-await promise