我正试着玩回调函数。我想要实现回调异步,据我所知,其中一种方法是调用setTimeout函数,使我的同步函数异步。除非我尝试将参数传递给setTimeout中的回调函数,否则效果很好。
这是异步的:
var callback_function = function (funcArg) {
console.log("From Main Function");
setTimeout(funcArg, 10); // WATCH THIS LINE
console.log("From Main Function 2");
};
callback_function(function (arg) {
console.log("From Callback");
console.log(arg);
});
console.log("This should run before callback");输出:
从主要功能
来自主要职能2
这应该在回调之前运行。
从回调
未定义
这不是异步:
var callback_function = function (funcArg) {
console.log("From Main Function");
setTimeout(funcArg("Test"), 10); // WATCH THIS LINE
console.log("From Main Function 2");
};
callback_function(function (arg) {
console.log("From Callback");
console.log(arg);
});
console.log("This should run before callback");输出:
从主要功能
从回调
测试
来自主要职能2
这应该在回调之前运行。
知道为什么会这样吗?在传递参数的情况下,如何异步运行该函数?
发布于 2014-02-10 11:40:04
您不是将一个函数传递给setTimeout,而是调用您的函数并传递结果。
变化
setTimeout(funcArg("Test"), 10);至
setTimeout(function(){ funcArg("Test")}, 10);https://stackoverflow.com/questions/21676156
复制相似问题