【发布时间】:2019-11-12 01:33:43
【问题描述】:
有没有机会从 getDataFromApi() 的 helpMe 函数值返回?到目前为止,每次我调用这个函数时,我都会得到“null”值。
async function helpMe() {
let promise = null;
let sub = someService.someObservable.subscribe(async () => {
promise = await getDataFromApi()
})
subscriptions.push(sub)
return promise;
}
第一个目标是我需要将订阅存储在全局子数组中。第二个目标是当我得到状态为 400 的响应时 - 我不想打开模式。只有当我得到 200 并且一切正常时,我才希望打开模式。
function async load() {
const promise = await helpMe();
openModal();
}
【问题讨论】:
-
我在这里可能是盲人,但你为什么需要在这里观察?你就不能做
let promise = await getDataFromApi() -
此外,据我所知,
await不能处理subscribe结果,因为它返回一个不能“等待”的 Observable。如果你想await它,你应该将 observable 转换为Promise(因此承诺为空) -
subscribe多久触发一次回调?如果多次使用,那么无论如何使用 Promise 是没有意义的。 -
什么是
subscriptions? -
我需要将此订阅存储在全局订阅数组中,以便在其他服务中进行进一步操作。
标签: javascript angular async-await observable subscription