gpt4 book ai didi

javascript - RxJS:Observable.create() 与 Observable.from()

转载 作者:数据小太阳 更新时间:2023-10-29 04:04:08 24 4
gpt4 key购买 nike

这两者有什么区别?

return Observable.create(function(observer) {
if (array)
observer.next([]);
else
observer.next(null);
observer.complete();
});

return Observable.from( array ? [] : null );

我认为它可能是一样的,但效果不一样。

最佳答案

create(...) 是一个通用的 Observable 工厂方法,用于创建一个 Observable,您可以在其中明确指定值的方式传递给 订阅者

例如,如果您要创建一个定时器基础Observable(它不是已经作为Observable.timer存在)您可以这样做:

   Observable.create(observer => {
const timeoutId = setTimeout(() => {
observer.next(0);
observer.complete();
}, 500);

return () => clearTimeout(timeoutId);
});

from(...) 是我所说的一致性 运算符,因为它试图将传入的数据类型强制转换为Observable(使其符合)。这意味着它将接受各种类型并将它们转换为 Observables。这些类型包括:

  • 数组
  • promise
  • 生成器
  • 可观察的东西

还有一些特定的转换器,例如 fromArrayfromPromise,它们专门转换这些类型,但是 from 更多的是这些方法的瑞士军刀

如果您只需要一个值,您应该使用 Observable.of(文档似乎已过时,just/return 已重命名为 在 RxJS 5 中,我认为它们不再是别名了)。

// Don't quote me on the import part
import 'rxjs/add/observable/of';

Observable.of(1, 2, 3, 4).subscribe();

关于javascript - RxJS:Observable.create() 与 Observable.from(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41112618/

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