gpt4 book ai didi

javascript - 如果两个 Observable 是通过 defer 创建的,那么两个 Observable 之间有什么区别?

转载 作者:行者123 更新时间:2023-11-27 22:57:40 24 4
gpt4 key购买 nike

例如,
var 间隔 = Rx.Observable.interval(1000);
间隔.订阅(x => console.log(x));

var deferred = Rx.Observable.defer(()=> 返回间隔);
deferred.subscribe(x=> console.log(x));
似乎做同样的事情。看来可观察量默认是“延迟的”。 defer 有什么用?

最佳答案

defer接受一个返回可观察值的参数函数。与大多数运算符一样,该运算符本身返回一个可观察值。当那个defer observable 被订阅,它执行参数函数,获取函数返回的 observable 并订阅该 observable,并将该 observable 中的值沿流传递。

当您想要将函数返回的可观察对象的创建推迟到 defer 时,这很有用。订阅时间。在您的示例中,defer不会带来太多值(value),但它很有用,例如当您有一个执行某些 API 调用并返回可观察/ promise 的回调,但您不想立即执行 API 调用时。

例子比很多文字更好,你会在SO的类似问题中找到一些例子,例如RxJS and React's setState - delay function execution until subscription , How to start second observable *only* after first is *completely* done in rxjs ,和Rx.js wait for callback to complete .

关于javascript - 如果两个 Observable 是通过 defer 创建的,那么两个 Observable 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37447469/

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