首页 > 解决方案 > 在执行更多代码之前,如何等待可观察对象更新?

问题描述

我认为 observable 可能不适合在这里使用,但我不确定我还能用什么来为另一个类提供变量值的实时更新。

我在服务类中有这个循环

elements.forEach(element => {
  doStuff();
  this.numberSubject.next(valueFromDoStuff);
})

以及订阅我的组件类中的 observable

numberSubjectObservable.subscribe(result => {
  this.value = result
}

我想要的是能够暂停循环,直到使用订阅中的最新值更新我的 Angular 组件,但现在它会等到结束后再呈现最终值。

标签: javascriptangulartypescriptangular2-observables

解决方案


不确定我是否完全理解您在这里尝试执行的操作,但如果您需要等待 this.value 等于 numberSubjectObservable 结果,您可以使用异步方法并尝试以下操作

你可以改变这个

numberSubjectObservable.subscribe(result => {
  this.value = result
}

对此

this.value = await numberSubjectObservable.toPromise();

推荐阅读