欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Rxjs of() 和 of({}) 的区别

发布时间:2023/12/19 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Rxjs of() 和 of({}) 的区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我最近在做 SAP Spartacus 电商云的一个单元测试:

起初我 return 的是 of(),后来发现这样写的话,下图 map 操作符内的匿名函数不会触发。

我们通过单步调试即可找到原因:

首先从当前的 Observable 对象里提取出 map 操作符。每一个通过 pipe 加工过的 Observable 对象,都有一个 Operator 引用。

然后,使用这个 Operator 调用 Observable 对象。

执行第28行逻辑:

这里的 this 仍然指向原始的 Observable 对象,而 array 即是输入参数,也就是传入 of 里的空对象{}.

如果改成 of(), 那么第2行的 array 为空,因此根本不会进入 for 循环,所以 map 操作符里的匿名函数,也就没有机会得到执行了:

每个 map Operator 都维护了一个 project 属性,指向 map 调用时传入的匿名函数:

现在就执行到我的匿名函数了:

更多Jerry的原创文章,尽在:“汪子熙”:

总结

以上是生活随笔为你收集整理的Rxjs of() 和 of({}) 的区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。