【发布时间】:2023-11-27 04:00:01
【问题描述】:
我正在做一个 Angular 8 项目,我需要在订阅中返回一个承诺。 这是我的观察结果:
export async function resolvePage(api: ApiService, transition: Transition) {
const slug = transition.params().slug.split('/').slice(-1).pop();
return api.get(`/pages/${slug}`).toPromise();
}
我需要做这样的事情,但它不起作用:
export async function resolvePage(
api: ApiService,
transition: Transition,
stateService: StateService
) {
const slug = transition
.params()
.slug.split("/")
.slice(-1)
.pop();
return api.get(`/pages/${slug}`).subscribe(
(res: any) => {
return new Promise((resolve, reject) => {
resolve(res);
});
},
() => {
stateService.go("app.404");
}
);
}
我该怎么做?
【问题讨论】:
-
return api.get(...).toPromise()但这破坏了使用 observables 的好处。 -
我需要在订阅中返回一个承诺
-
"这是我的 observable:" 你展示的不是 observable,而是一个 promise...
-
apiService 是可观察的
-
你能返回解析方法 - '{return resolve(res)}' 吗?
标签: javascript angular promise observable