是否有机会从getDataFromApi()的helpMe函数值返回?到目前为止,每次我调用此函数时,我都会得到“空”值。
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();
}
答案 0 :(得分:0)
将JavaScript
函数传递给async
是毫无意义的-它会丢弃返回的承诺,它不会等待任何事情。您将需要使用
subscribe
或仅调用内置的toPromise
method:
new Promise((resolve, reject) => {
someService.someObservable.subscribe(resolve, reject);
})
答案 1 :(得分:0)
您可以只使用普通的rxjs
而不是使用异步/等待功能。 switchmap
运算符可能会在这里为您提供帮助:
public helpMe()
{
return this.someService.someObservable.pipe(
switchMap(result =>
{
return someDataFromApi();
}),
tap(resultFromApi => {
// ... do something with `resultFromApi` from `someDataFromApi`.
}),
).toPromise();
}