我在让 Promise 按预期工作时遇到问题。我需要做以下事情:
我从标准输出获取文件名,将它们分成行并复制它们。复制操作完成后,我想开始其他操作,这是我的问题。
我在 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();
});
}
Run Code Online (Sandbox Code Playgroud)
请帮忙,因为我显然错过了一些东西。