欢迎访问 生活随笔!

生活随笔

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

编程问答

Rxjs 里 subscribeToArray 工具函数的详细分析

发布时间:2023/12/19 编程问答 58 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Rxjs 里 subscribeToArray 工具函数的详细分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

subscribeToArray 函数体的逻辑:它的实质是一个函数:

该函数接收一个 array 作为输入参数,遍历这个 array,将其每个元素,作为另一个匿名函数执行的一部分。该匿名函数体内,将 array 的元素作为 subscriber 订阅函数的输入:

对上述代码进行一点增强:

<html> <script> const subscribeToArray = (array) => (subscriber) => {for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {subscriber.next(array[i]);}subscriber.complete(); };const aInput = [1,2,3,4];const newFunction = subscribeToArray(aInput);debugger; </script> </html>

在调试器里查看 newFunction,发现第12行代码调用 subscribeToArray,输入的 aInput,已经维护到新函数的Closure(闭包)里了:

这个 newFunction 应该怎么消费呢?

<html> <script> const subscribeToArray = (array) => (subscriber) => {for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {subscriber.next(array[i]);}subscriber.complete(); };const aInput = [1,2,3,4];const newFunction = subscribeToArray(aInput);const subscriber = {closed: false };subscriber.next = (data) => console.log("next: " + data); subscriber.complete = () => console.log("completed!"); debugger;newFunction(subscriber); </script> </html>

输出:

回到 fromArray.js 的 subscribeToArray,也就不难理解其逻辑了:

直到应用程序代码调用 Observable 的 subscribe 方法时,才会变量 input 数组,用 subscribe 的 next 方法依次处理 input 数组的元素。在 CombineLatest Operator 的例子里,input 元素就是 Observable 对象的组合。

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

总结

以上是生活随笔为你收集整理的Rxjs 里 subscribeToArray 工具函数的详细分析的全部内容,希望文章能够帮你解决所遇到的问题。

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