javascript – RxJS reduce不会继续

前端之家收集整理的这篇文章主要介绍了javascript – RxJS reduce不会继续前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么flatMap不会导致下游减少火灾?

我得到的代码如下:

handleFiles.flatMap(files =>
  Rx.Observable.from(files).
  flatMap((file,i) => fileReader(file,i)).
  reduce((form,file,i) => {
    form.append('file[' + i + ']',result);
    console.log('reduce step',file);
    return form;
  },new FormData()).
  tap(console.log.bind(console,'after reduce'))
).
subscribe(console.log.bind(console,'response'));

而问题是“减少后”点击从未被击中.为什么?

日志如下:

reduce step [data]
reduce step [data]

截图:

解决方法

问题不在于flatMap;这是减少工作的方式.

reduce读入整个流并将其减少为单个值,仅在源流关闭时发出.如果您的from(文件)流没有结束,则reduce将永远不会输出其值.

请尝试使用scan;它发出每个中间步骤,似乎是你正在寻找的.

猜你在找的JavaScript相关文章