bob*_*bob 3 javascript jquery settimeout
如果我想返回一个值,我该如何使用setTimeout
$.each(pCodes, function(index, pCode) {
setTimeout(func(parm1), 2000);
});
function func(in)
{
var value = 999;
return value;
}
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 11
首先,你的来电setTimeout是错误的.您正在调用该函数func,然后使用该setTimeout方法中的结果.您的代码相当于:
$.each(pCodes, function(index, pCode) {
var temp = func(parm1);
setTimeout(temp, 2000);
});
Run Code Online (Sandbox Code Playgroud)
作为func回报999,你将会做setTimeout(999, 2000),这当然没有意义.要调用一个带有参数setTimeout的函数,需要一个函数来调用该函数:
$.each(pCodes, function(index, pCode) {
setTimeout(function() { func(parm1); }, 2000);
});
Run Code Online (Sandbox Code Playgroud)
处理返回值func有点复杂.正如稍后调用的那样,您必须稍后处理返回值.通常,这是通过在返回值可用时调用的回调方法完成的:
var callback = function(value) {
// Here you can use the value.
};
$.each(pCodes, function(index, pCode) {
setTimeout(function() { func(parm1, callback); }, 2000);
});
function func(in, callback) {
var value = 999;
callback(value);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7773 次 |
| 最近记录: |