为了账号安全,请及时绑定邮箱和手机立即绑定

如果 RxJS 中的 'of' 是同步的,因为它一次返回所有值?

如果 RxJS 中的 'of' 是同步的,因为它一次返回所有值?

温温酱 2023-04-20 16:23:00
of和之间的主要区别from在于of一次返回所有值并from逐一返回。这是否意味着如果我们of与 Observables 一起使用,它们将开始以同步方式运行?使它们表现异步的方法是使用from?
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

RxJS 中的一切都是同步的,除非你处理延迟或者你有意使用异步调度程序,例如asyncScheduler.

当你有一个 RxJS 链时,它是同步的还是异步的只取决于你使用的操作符和你的源 Observables 的行为。所以这不是of()or的任何特定内容from()。即使from([1, 2, 3])orof(1, 2, 3)发出三个值,它也会同步发出。

另请注意,您无法将异步链变为同步行为。


查看完整回答
反对 回复 2023-04-20
?
绝地无双

TA贡献1946条经验 获得超4个赞

这里有一个轻微的误解(正如 Kaustubh 所暗示的):
of不会立即返回其所有值。只是of可以接受可变数量的参数,而只from需要一个。

of将每个给定的参数解释为值,同时from会将单个给定的参数转换为可观察的。

所以这表现相同:

of(1, 2)
from([1, 2])

虽然这不会:

of([1, 2])
from([1, 2])


查看完整回答
反对 回复 2023-04-20
?
ITMISS

TA贡献1871条经验 获得超8个赞

考虑以下,


const myValues = ['val1', 'val2', 'val3'];


const atOnce = Observable.of(myValues); // This will emit the entire myValues array as a single emission.


// The Observables below are similar in behaviour

// The will emit the values from myValues one at a time


const discreteOne = Observable.of(...myValues);

const discreteTwo = Observable.from(myValues);



查看完整回答
反对 回复 2023-04-20
  • 3 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信