延迟返回值

psyga102 2015-02-21 04:49:19
为什么当show()方法返回i值后,j还是接收不到,依然是undefined
<script type="text/javascript" language="javascript">
function show(){
var i=0;
//1秒后,返回i的值
var timer=setInterval(function(){
i=i+1;
if(i>10){
clearInterval(timer);
alert("返回i="+i);
return i;
}
},100);
}

var j;
$(function(){
j=show();
var timer=setInterval(function(){
alert("j=="+j);
if(j!=undefined){
alert("这是接收到的返回值"+j);
clearInterval(timer);
}
},500);
});
</script>
...全文
138 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2015-02-21
  • 打赏
  • 举报
回复
function show(cb){ var i=0; //1秒后,返回i的值 var timer=setInterval(function(){ i=i+1; if(i>10){ clearInterval(timer); alert("返回i="+i); cb && cb(i); } },100); } show(function(i){ alert("这是接收到的返回值"+i) })
天际的海浪 2015-02-21
  • 打赏
  • 举报
回复
show()函数根本就没有返回值啊。 return i是在 var timer=setInterval(function(){匿名函数中的。是从匿名函数中返回。不是从show()函数中返回 还有,延迟获取数据往往是用函数回调的方式,j=show()这样是不行的

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧