如何在可观察的订户角度8内返回承诺

时间:2019-12-16 19:42:01

标签: javascript angular promise observable

我正在做一个Angular 8项目,我需要在订阅中返回一个promise。 这是我的观察结果:

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");
    }
  );
}

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以使用Observable.toPromise()方法。参见https://www.learnrxjs.io/operators/utility/topromise.html

相关问题