gpt4 book ai didi

javascript - 像 Promises 一样的 RXJS5 链接

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:17 26 4
gpt4 key购买 nike

大家好,链接 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 属性...

最佳答案

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

RxJS 中最相似的选项是 map()运算符(operator)或 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 - 像 Promises 一样的 RXJS5 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40881903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com