首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >像承诺一样的RXJS5链接

像承诺一样的RXJS5链接
EN

Stack Overflow用户
提问于 2016-11-30 14:42:50
回答 1查看 132关注 0票数 2

大家好,链接RXJS5结果的最好方法是什么,比如promises?

代码语言:javascript
复制
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属性...

EN

回答 1

Stack Overflow用户

发布于 2016-11-30 15:10:06

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

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

代码语言:javascript
复制
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
  });

请注意,通常需要至少有一个订阅者,才能使可观察到的发射值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40881903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档