簡體   English   中英

如何在訂閱完成之前等待函數執行?

[英]How to wait with function execution until subscription is completed?

我想訂閱一個Observable,然后執行另一個函數。 我的問題是,請求完成需要一點時間。 但是,代碼只是在訂閱開始立即繼續執行。

訂閱完成后,我需要一些信息。 如果沒有該數據,transformShopList()將失敗。 當我運行代碼時,就會發生這種情況。

您如何等待訂閱完成,然后繼續其余的聲明?

this.observable3.subscribe(
  ...
);
// wait here?
this.transformShopList();

無論你在Javascript中做什么,都會遇到這個問題。 必須鏈接異步任務。 使用PromiseObservable或回調函數。

正確的代碼是

this.observable3.subscribe((...) => {
  ...
  this.transformShopList();
});

觀察者會發出一個事件,您的訂閱會收到它。 將您的轉換商店列表移動到訂閱響應中,它將在observable發出時執行。

https://angular.io/guide/observables

暫無
暫無

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

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