关于在js中一个function调用另一个function的问题

happy233333 2015-08-07 02:37:30
现在我有一段js代码
function getAreaId(areaId){
var addAreaId = new Array();
areaServiceM.getPlanAreasByCityId(areaId,function(data){
for(var j=0;j<data.length;j++){
addAreaId.push(data[j].areaId);
}
});
alert();
return addAreaId;
}
在另一个function中调用
function asss(areaId){
var zz = getAreaId(areaId);
alert(zz.length);
}
只有在getAreaId(areaId)方法中加上alert();,才能在asss(areaId)方法中得到返回值,如果没有在getAreaId(areaId)方法中加上alert();那么在asss(areaId)方法中就得不到返回值,这是为什么?
...全文
1188 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly@ 2015-08-08
  • 打赏
  • 举报
回复
areaServiceM.getPlanAreasByCityId 是异步的呀,跟alert(); 没有 基础太差,去看书去吧
似梦飞花 2015-08-08
  • 打赏
  • 举报
回复
用回调试试 肯能是异步
jark2008 2015-08-08
  • 打赏
  • 举报
回复
可能areaServiceM.getPlanAreasByCityId这个方法是异步的。 1,当没有加alert的时候,程序在执行到return的时候,该方法还未执行。 2,当加了alert的时候,由于alert弹出框会阻塞主线程,导致该方法有足够的时间抢在主线程执行到return之前执行完。

87,885

社区成员

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

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