gpt4 book ai didi

javascript - SetTimeout 后获取返回值

转载 作者:数据小太阳 更新时间:2023-10-29 06:08:43 35 4
gpt4 key购买 nike

我刚才问了关于按名称调用函数的问题,现在我想在 SetTimeout 之后处理 return 语句:

function ECall(funcName, arg)
{
command += "(";
for (var i=1; i<arguments.length; i++)
{
command += "'" + arguments[i] + "'";
if (i != arguments.length-1) command += ',';
}
command += ")";

//var funcPtr = eval(funcName);
//return funcPtr(arg); // This works, but I need SetTimeout

setTimeout('window[\'' + funcName + '\']' + command, 1000);
}

setTimeout 效果很好,但我必须保存被调用函数的返回值。当我写:setTimeout('alert(window[\'' + funcName + '\']' + command + ')', 1000);它提醒函数的返回值。我该如何存储它?

最佳答案

您不需要使用任何这种字符串操作。只需将函数引用传递给 window.setTimeout()。要存储函数的返回值,只需将其分配给传递给 window.setTimeout()

的函数中的变量即可
var savedValue;

function ECall(funcName)
{
var args = Array.prototype.slice.call(arguments, 1);
var func = window[funcName];

window.setTimeout(function() {
savedValue = func.apply(this, args);
}, 1000);
}

关于javascript - SetTimeout 后获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211103/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com