Javascript 何时延期
我在一个数组中循环,当所有文件读取延迟被解析时,“完成”被记录Javascript 何时延期,javascript,jquery,each,.when,Javascript,Jquery,Each,.when,我在一个数组中循环,当所有文件读取延迟被解析时,“完成”被记录 $.when.apply(null, $.each(files, function(index, file){ return self.fileRead.read(file).done(function(fileB64){ self.fileShow(file, fileB64, fileTemplate); }); })).done(function() {
$.when.apply(null, $.each(files, function(index, file){
return self.fileRead.read(file).done(function(fileB64){
self.fileShow(file, fileB64, fileTemplate);
});
})).done(function() {
console.log('done');
})
问题是,我只希望在fileShow方法返回后记录done
使用
$.map
代替$.each
。这将返回迭代函数返回的延迟的
对象数组,然后可以将这些对象传递给$
$.when.apply(null, $.map(function(index, file) {
return self.fileRead.read(file).done(function(fileB64) {
self.fileShow(file, fileB64, fileTemplate);
});
})).done(function() {
console.log('done');
});
使用$.map
而不是$。每个都可以返回延迟的对象<代码>$。每个
返回其第一个参数。这不起作用,它只是直接记录“完成”