javascript - RXJS5 像 Promise 一样链接

标签 javascript typescript rxjs rxjs5

大家好, 链接 RXJS5 结果的最佳方式是什么,比如 promise ?

interface MyObj{
  name : string
  url: string
  html: any // async
}

// promise chaining, pretty simple
getMyObjWithPromise()
  .then(myObj=>{

   // promise, we get back html from myObj.url async
   return getMyObjHtmlWithPromise(myObj)
  })
  .then(myObj=>{

   // done, here we have myObj with html
  })

与RXJS5类似? 我们需要跨流共享 myObj,并异步修改 obj 属性...

最佳答案

通过 Promises 和链接 then() 调用,您可以修改传递给连续处理程序的结果。

RxJS 中最相似的选项是 map()运算符或concatMap()如果你想返回另一个 Observable。在某些情况下也do可能有用,但它不能修改传递的值。

Rx.Observable.fromPromise(getMyObjWithPromise())
  .map(myObj => {
    return myObj;
  })
  .concatMap(myObj => {
    // promise, we get back html from myObj.url async
    return Rx.Observable.fromPromise(getMyObjHtmlWithPromise(myObj));
  })
  .subscribe(myObj => {
    // done, here we have myObj with html
  });

请注意,通常您需要至少有一个订阅者才能使 Observable 发出值。

关于javascript - RXJS5 像 Promise 一样链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40881903/

相关文章:

javascript - nodejs 多个定时器和 cpu 使用

reactjs - 使用 Msal Provider React TS + Vite 获取未定义(读取 'getLogger' )

angular - 带滤镜的 ngrx 效果有效吗?

javascript - Angular 5 - 另一个观察者内部的观察者循环 - 有效的方法

jquery - RxJS:请求完成后再次开始发布

javascript - 使用 javascript 创建并提交表单

javascript - 在 addEventListener 调用的函数中删除 eventHandler

javascript - 具有各种不同图标问题的 JQuery 切换图标

Angular Firebase 将时间戳检索为日期

javascript - ngIf 中的条件如何仅对所选行为真