funcOne(cb) {
//some async actions
cb(resp) //pass resp to callback function
}
fucntionTwo(resp) { console.log(resp) }
fucntionThree(resp) { console.log(resp) }
funcOne(funcTwo)
funcOne(funcThree)
函数一将在上述情况下运行两次,我如何使funcOne运行一次却触发funcTwo和funcThree? 我需要传递funcOne中的resp并执行
funcTwo
和funcThree
,这意味着在funcOne中传递多个回调。我知道我可以传递多个参数,但是还有其他方法可以做到吗?
最佳答案
您可以使用rest parameter语法,然后使用forEach
和apply
函数。就像是
function funcOne(...cb) {
console.log("one");
cb.forEach(s => s.apply());
}
function funcTwo() {
console.log("two");
}
function funcThree() {
console.log("three");
}
funcOne(funcTwo, funcThree);
您可以使用任意数量的函数参数调用
funcOne
。关于javascript - 在函数中传递多个回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48942259/