如何在映射和缩减后访问原始单条目
How to access original single entries after map and reduce
给定以下函数:
var files = [file1,file2,file3]
files.map(doSomethingWithFile).reduce(function (sequence, filePromise) {
return sequence.then(function () {
return filePromise;
}).then(function (content, err) {
//doSomethingWith(file,content) <-- How to access current file (either file1,file2 or file3)
});
我如何访问'file',这将是文件中的单个元素?因为'then'保证对它进行排序,所以我知道第一次输入最后一个then时,file1是要映射的元素。之后file2, file3…
然而,除了使用递增索引直接处理原始文件和结果之外,还有其他方法吗?
Map和reduce没有就地修改,因此原始文件数组仍然存在。此外,您可以传递第三个参数来reduce,这是当前索引。您可以使用此参数访问原始数组
的相应元素。var files = [file1,file2,file3]
files
.map(doSomethingWithFile)
.reduce(function(sequence, filePromise, i) {
return sequence.then(function() {
return filePromise;
}).then(function (content, err) {
doSomethingWith(file[i], content) // i comes from .reduce()
});
让您的map函数返回一个包装器对象,其中包含对文件和承诺的引用。
即…
function doSomethingWithFile(file){
//do something
return {file:file, promise:...}
}
files.map(doSomethingWithFiles).reduce(function(sequence, wrapper){
wrapper.file;
wrapper.promise;
});
相关文章:
- 访问布局信息是否也会导致浏览器重排
- django没有访问控制允许删除原始标头
- HTML5 Canvas访问控制允许原始错误
- jQuery.get()访问控制只允许某些资源出现原始错误
- 在 JavaScript 中访问原始全局变量和属性
- 从另一个域的 iframe 中的代理访问父/原始 URL(同源策略)
- Chrome中的错误:“;原始文件://不允许访问控制允许原始文件;
- 如何在d3事件绑定时访问原始事件对象
- 剑道网格,在dataBound调用中访问原始绑定行
- AJAX请求从每个页面访问服务器,我无法找到原始AJAX调用的源
- 如何在映射和缩减后访问原始单条目
- 如何在Node.js web应用程序中访问原始(或完整)X509证书?
- 我如何从HTML5视频播放器帧访问原始像素数据
- 访问原始页面"从幻影模块
- $http给出了"不允许访问-控制-允许-原始"错误在Chrome浏览器
- 访问继承的修改对象的原始属性
- 在HtmlUnit HtmlElement中访问原始HTML
- XMLHttpRequest访问控制允许原始错误Google Drive API
- 访问Parse.com Cloud Code beforeSave函数中的原始字段
- jQuery.getJSON-访问控制允许原始问题