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并执行funcTwofuncThree,这意味着在funcOne中传递多个回调。

我知道我可以传递多个参数,但是还有其他方法可以做到吗?

最佳答案

您可以使用rest parameter语法,然后使用forEachapply函数。就像是

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/

10-13 02:38