【发布时间】:2018-08-14 07:24:07
【问题描述】:
我有一个带有文件夹名称的动态数组,并使用 zipFolder 创建了一个 zip 由于库是异步的,我遇到了问题,即
zipFolder(source,dest,callback)
因为它是异步调用,所以我想阻止下一个请求,除非第一个响应为真,
function (req, res)
var folder = ['N','PP','Y'];//dynamic just an example
for( var i = 0 ; i < folder.length ; i++) {
var source = path.join(basePath,'/download/'+folder[i]);
var dest = path.join(basePath,'/createZip/'+folder[i]+'.zip');
console.log('sending',folders[i])
//this is async
zipFolder(source,dest, function(err) {
if(err) {
console.log('oh no!', err);
} else {
console.log('EXCELLENT');//want to send the second,third,fourth if success
}
});
}
总结: 输出应该是这样的:
发送文件 1 如果成功/响应 发送文件 2 如果成功/响应
想要瀑布之类的东西等待回调响应发送第二个文件
另外我想要一个知道完成回调的方法,以便我可以发回响应
【问题讨论】:
-
我建议使用 Promise 和
asyncawait
标签: node.js async-await async.js waterfall