我是Node.js新手。我使用嵌套在forEach函数中的异步瀑布,该函数嵌套在另一个async.waterfall函数中。我真的不知道为什么该功能的工作流程会像这样显示我。任何人都可以解释和帮助我。
function check_Async () {
async.waterfall([
function (callback){
console.log('------- Function 1 --------')
setTimeout(() => {
callback(null, 'Result function 1')
},100)
},
function(result,callback){
console.log('------- Function 2 --------')
let array1 = [1,2,3]
array1.forEach((index) => {
async.waterfall([
function(callback){
console.log('-------- Sub Function 2-1 -----')
setTimeout(() => {
callback(null, 'Result function 2-1')
},100)
},
function(result,callback){
console.log('-------- Sub Function 2-2 -----')
setTimeout(() => {
callback(null, 'Result function 2-2')
},100)
},
function(result,callback){
console.log('-------- Sub Function 2-3 -----')
setTimeout(() => {
callback(null, 'Result function 2-3')
},100)
}
], (err, result) => {
console.log('Result sub function')
})
})
callback(null,1)
},
function(result,callback){
// console.log({result2: result})
console.log('------- Function 3 --------')
setTimeout(()=> {
callback(null,'Result function 3')
},100)
}
],(err,result) => {
if(err) console.log(err)
console.log('=> Result parent function')
})
}
我希望函数的输出为:
'------- Function 1 --------'
'------- Function 2 --------'
'-------- Sub Function 2-1 -----'
'-------- Sub Function 2-2 -----'
'-------- Sub Function 2-3 -----'
'Result sub function'
'-------- Sub Function 2-1 -----'
'-------- Sub Function 2-2 -----'
'-------- Sub Function 2-3 -----'
'Result sub function'
'-------- Sub Function 2-1 -----'
'-------- Sub Function 2-2 -----'
'-------- Sub Function 2-3 -----'
'Result sub function'
'------- Function 3 --------'
'=> Result parent function'
,但实际输出为:
'------- Function 1 --------'
'------- Function 2 --------'
'-------- Sub Function 2-1 -----'
'-------- Sub Function 2-1 -----'
'-------- Sub Function 2-3 -----'
'------- Function 3 --------'
'-------- Sub Function 2-2 -----'
'-------- Sub Function 2-2 -----'
'-------- Sub Function 2-2 -----'
'=> Result parent function'
'Result function 2-2'
'-------- Sub Function 2-3 -----'
'Result function 2-2'
'-------- Sub Function 2-3 -----'
'Result function 2-2'
'-------- Sub Function 2-3 -----'
'Result sub function'
'Result sub function'
'Result sub function'