簡體   English   中英

如何在 Observable 訂閱者角度 8 中返回承諾

[英]How to return a promise inside Observable subscriber angular 8

我正在處理一個 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");
    }
  );
}

我該怎么做?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM