如何在嵌套回调函数内的回调函数周围执行for循环
我正在尝试遍历一个回调函数,其中该for循环也在嵌套的回调函数之内,但是在for循环行之后没有打印任何内容
function createStuff(inputs, callback) {
.
.
.
Foo.bar(inputs.arg1, inputs.arg2, function(err, stuff1) {
if (err) {
return callback(err)
}
Foo.bar(inputs.arg1, inputs.arg2, function(err, stuff2) {
if (err) {
return callback(err)
}
console.log("test1")
for (let i = 0; i < inputs.length; i++) {
console.log("test2")
Moo.bar(inputs.arg1[i], inputs.arg2[i], function(err, stuff3) {
console.log("test3")
if (err) {
return callback(err)
}
})
}
})
})
.
.
.
}
我基本上是想在回调函数Moo.bar()上循环,在没有机会调用我不喜欢的函数之前,“ test1”可以很好地打印出来,但是“ test2”却从来没有输出过理解,显然“ test3”也不会打印出来。如何以可接受的Javascript node.js方式正确执行此操作。请注意,该循环围绕嵌套回调中的最后一个回调函数,因此不确定是否使循环更容易。
回答如下:
如何在嵌套回调函数内的回调函数周围执行for循环
我正在尝试遍历一个回调函数,其中该for循环也在嵌套的回调函数之内,但是在for循环行之后没有打印任何内容
function createStuff(inputs, callback) {
.
.
.
Foo.bar(inputs.arg1, inputs.arg2, function(err, stuff1) {
if (err) {
return callback(err)
}
Foo.bar(inputs.arg1, inputs.arg2, function(err, stuff2) {
if (err) {
return callback(err)
}
console.log("test1")
for (let i = 0; i < inputs.length; i++) {
console.log("test2")
Moo.bar(inputs.arg1[i], inputs.arg2[i], function(err, stuff3) {
console.log("test3")
if (err) {
return callback(err)
}
})
}
})
})
.
.
.
}
我基本上是想在回调函数Moo.bar()上循环,在没有机会调用我不喜欢的函数之前,“ test1”可以很好地打印出来,但是“ test2”却从来没有输出过理解,显然“ test3”也不会打印出来。如何以可接受的Javascript node.js方式正确执行此操作。请注意,该循环围绕嵌套回调中的最后一个回调函数,因此不确定是否使循环更容易。
回答如下: