我有一个使用Promise的问题,需要实现以下功能:从stdout获取文件名,将其拆分成行并进行复制。当复制操作完成后,我想要开始其他操作,但这就是我的问题。
我在Promise内部创建了一个复制函数,在出现错误时会立即拒绝它,如果没有错误,我会在完成循环中的复制后解决它,但由于某种原因,then()内部的函数在复制操作完成之前就被执行了。
我在Promise内部创建了一个复制函数,在出现错误时会立即拒绝它,如果没有错误,我会在完成循环中的复制后解决它,但由于某种原因,then()内部的函数在复制操作完成之前就被执行了。
var lines = stdout.split(/\r?\n/);
copyUpdatedFiles(lines).then(
function() {
console.log('this one should be executed after copy operation');
}
);
function copyUpdatedFiles(lines) {
return new Promise(function(resolve, reject) {
for (var i = 0; i < linesLength; i++) {
fs.copy(lines[i], target, function(err) {
if (err) {
reject();
}
});
}
resolve();
});
}
请帮忙,因为我显然漏掉了什么重要的东西。