我正在尝试使用回调函数。我想让我的回调异步,根据我的理解,其中一种方法是调用setTimeout
函数来创建我的同步函数async。这很有效,除非我尝试将参数传递给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
这应该在回调之前运行
知道为什么会这样吗?尽管传入参数,我怎么能异步运行函数?
答案 0 :(得分:2)
你没有将函数传递给setTimeout
,而是调用你的函数并传递结果。
更改
setTimeout(funcArg("Test"), 10);
到
setTimeout(function(){ funcArg("Test")}, 10);