大家好,链接RXJS5结果的最好方法是什么,比如promises?
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属性...
发布于 2016-11-30 15:10:06
通过Promises和链接then()调用,您可以修改传递给连续处理程序的结果。
RxJS中最类似的选项是map()运算符或concatMap(),如果您想要返回另一个可观察对象。在某些情况下,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
});请注意,通常需要至少有一个订阅者,才能使可观察到的发射值。
https://stackoverflow.com/questions/40881903
复制相似问题