这是我的相关代码:
success: [
setTimeout(function () {
ajax.success
}, 250),
//...
奇怪的是,我可以从 success: []
选项中调用 ajax.success
,但是当包装在 setTimeout() 中时它会停止工作
.
我认为最有效的方法是在执行此代码之前将 ajax.success
选项分配给函数,但我不确定如何执行此操作。
非常感谢任何帮助,如果这是重复的,我深表歉意。我找不到类似的东西。
最佳答案
success
回调接受一个处理程序或处理程序列表。但是,调用 setTimeout
的结果是与该超时关联的唯一 ID。这不是一个函数。因此,您可能想要的是:
success: [
function() {
setTimeout(function () {
doStuff();
}, 250),
},
// ...
]
如果你的函数需要使用一些参数,那么你可以这样包装它:
success: [
function() {
var self = this,
args = arguments;
setTimeout(function () {
doStuff.apply(self, args);
}, 250),
},
// ...
]
请注意,this
和 arguments
是关键字。另请注意 .apply
的使用。
关于javascript - 如何从 AJAX 回调内的 setTimeout() 调用存储在一组选项中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16676190/