Hen*_*rik 6 javascript reactive-programming reactive-extensions-js rxjs
为什么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'));
Run Code Online (Sandbox Code Playgroud)
而问题是"减少后"点击从未被击中.为什么?
日志如下:
reduce step [data]
reduce step [data]
Run Code Online (Sandbox Code Playgroud)
截图:
如果 files 是一个数组,那么如果从 fileReader 返回的 observable 终止,那么reduce 应该终止。因此,对于这段代码,问题在于 fileReader 返回了一个未完成的可观察对象。