JavaScript-JavaScript的setTimeOut如何获取返回值?

JavaScript-JavaScript的setTimeOut如何获取返回值?

夜无邪 发布于 2017-04-05 字数 95 浏览 1025 回复 5

我用setTimeout()调用一个函数,但是我想得到setTimeout里的函数的返回值,有什么好的方法吗?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

偏爱自由 2017-10-08 5 楼

定义一个全局变量就可以呀

var returnValue;

function ss()
{
window.setTimeout(function() {
savedValue = '22'//进行逻辑处理;
}, 1000);
}

夜无邪 2017-09-21 4 楼

可以这样:

<html>
<head>
<script language="javascript" type="text/javascript">
var retValue = "";
function process()
{
//{逻辑处理};
return "返回值";
}

function submit()
{
var iTimeoutId = setTimeout("retValue = process() ",0);
}

function getReturnValue()
{
alert(retValue);
}

</script>
</head>
<body>
<input type="button" onclick="submit()" value="执行">
<input type="button" onclick="getReturnValue()" value="取值">
</body>

偏爱自由 2017-07-25 3 楼

用throw exception 方法然后再用equals把它转可用代码

try{
setTimeout(function(){
throw new Excepton("//返回值")
},1000);}
catch(e){equals(e);}

虐人心 2017-06-30 2 楼

使用setTimeout对程序没有阻塞作用,即使拿返回值也必须等定时执行完成。所以使用setTimeout时,将一个回调函数传入,再在回调函数中通过参数去接收:

 function myTimer(fun,limit,callback) {
var timer = null;
setTimeout(function(f){
f.call(this,fun.call(this));
},limit,callback)
}

myTimer(function(){
//
return 'a';
},1000,getValue1);

function getValue1(val) {
alert(val);
}

灵芸 2017-04-21 1 楼

 var oInterval = "";
function fnStartClock(){
//oInterval = setInterval(fnDoClock,2000);
oInterval = setTimeout(fnDoClock,2000);
}
function fnDoClock(){
console.log(oInterval);
}
window.onload = fnStartClock;