如何从可观察对象同步返回定义的变量

问题描述 投票:0回答:1

所以我继承了我正在尝试进行一些测试的角度/离子应用程序,该应用程序有很多问题,我目前正在更改存储/返回它使用的数据的函数。该应用程序被设置为通过我根本不熟悉的可观察对象来使用这些数据。应用程序中的所有函数都在执行

.subscribe()
,其中原始函数正在执行一些异步函数。我想修改这些函数以同步返回全局变量,我尝试了这个,但这似乎不起作用。有人可以帮我吗?

public getDataObject(): Observable<DataObject> {
  return Observable.create((do: Data Object) => {
    if (this.globalDataObject === null) {
      throw new Error("Test Error, global var is null")
    }
    let alert = this.alrtCntrl.create({
      title: "INFO",
      subTitle: `Returning Global Data Object Variable`,
      buttons: ["OK"],
    })
    alert.present();
    return this.globalDataObject;
  })
}
angular rxjs ionic2
1个回答
0
投票

删除

Observable.create
包装器应该会给你你正在寻找的行为。

public getDataObject(): DataObject {
  if (this.globalDataObject === null) {
    throw new Error("Test Error, global var is null")
  }
  const alert = this.alrtCntrl.create({
    title: "INFO",
    subTitle: `Returning Global Data Object Variable`,
    buttons: ["OK"],
  })
  alert.present();
  return this.globalDataObject;
}

只需确保更新对

getDataObject()
的任何引用,因为它们现在将直接接收对象而不是 Observable。

© www.soinside.com 2019 - 2024. All rights reserved.