【发布时间】:2018-01-21 00:03:55
【问题描述】:
我有一段这样的代码:
var async = require('async');
var ftp = require('jsftp');
async.waterfall([
function(callback){
console.log("Step 1");
// fetch data from DB
callback(null);
},
function(callback){
console.log("Step 2");
// FTP to remote location using a third party library
ftp.put(fileName, remoteLocation, function(err) {
if (!err){
callback(null, "File transferred successfully!")
}else {
callback(err, null)
}
});
}],
function(err, result){
if(err){
console.log("Step 2.5")
console.log(err);
}else{
console.log("Step 3");
}
callback(err, result);
});
好吧,我期望的是,如果文件的 FTP 中有任何错误(假设 FTP 服务器已关闭),循环应该进入“步骤 2.5”。
相反,它只是抛出一个错误(如果服务器关闭,则为 ECONNRESET),并且它永远不会到达它发送回调的最后一个块。
有没有办法强制异步循环在逻辑上完成?
【问题讨论】:
标签: node.js callback ftp async.js