我在Javascript中有两个非常基本的功能
function def(){
console.log("DEF")
}
function abc(){
setTimeout(function(){
console.log("ABC")
}, 1000)
def();
}
abc();
以上功能打印DEF然后打印ABC。我想按顺序打印它们,例如ABC然后是DEF。
我对回调有基本的想法,但我没有得到如何将上述函数转换为回调函数以获得所需的输出:)
答案 0 :(得分:1)
根据我的观点,@ Matatez的回答是不必要的复杂。
如果您想将回调函数发送给任何函数,您必须将其作为参数发送给该函数。
// Function you want to send as a callback
function def(){
console.log("DEF")
}
// Function in which you want to call this callback
function abc(callback){
setTimeout(function(){
// Log ABC to the console
console.log("ABC");
// Call the callback function after the ABC has been logged
callback();
}, 1000);
}
// Call the function and pass your callback as parameter
abc(def);
答案 1 :(得分:0)
在JavaScript中,函数是一等成员,所以你可以将它们作为参数传递给其他函数,就像你对任何其他对象一样:
function def(){
console.log("DEF")
}
function abc(){
setTimeout(function(){
console.log("ABC")
}, 1000)
}
function withCallbacks(...callbacks) {
callbacks.forEach(callback => callback());
}
withCallbacks(abc, def); // prints DEF, ABC