函数内调用异步方法获数据,无法及时获取到赋值给返回值,解决
2018-03-09 13:05
477 查看
js默认是异步的,比如下载3张图片,你点击产生这个指令,但图片下载完可能是2秒之后,“下载完成”的提示消息也是在之后发送给你,相当于多线程
也就是你写了个函数,在里面请求一组数据,并尝试返回值,可能你函数走完了,请求的数据才拿到
比如:
解决方法:
用ajax,把同步设置成异步,再继续,就会走完这个再走下一步了 $.ajax({
url: '../static/json/all_xm.json',
type: 'GET',
dataType: "json",
async: false,//将异步设置为同步
success: function (result) {
datas = result['所有消费项目'];
alert(datas[0]);
},
error: function (xhr, status, error) {
alert("请求出错:" + xhr.status + "," + xhr.responseText);
},
complete: function (xhr, status) {
alert("Complete");
}
});
也就是你写了个函数,在里面请求一组数据,并尝试返回值,可能你函数走完了,请求的数据才拿到
比如:
解决方法:
用ajax,把同步设置成异步,再继续,就会走完这个再走下一步了 $.ajax({
url: '../static/json/all_xm.json',
type: 'GET',
dataType: "json",
async: false,//将异步设置为同步
success: function (result) {
datas = result['所有消费项目'];
alert(datas[0]);
},
error: function (xhr, status, error) {
alert("请求出错:" + xhr.status + "," + xhr.responseText);
},
complete: function (xhr, status) {
alert("Complete");
}
});
相关文章推荐
- jquery ajax done 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
- jquery 异步调用方法中不能给全局变量赋值的原因及解决办法
- JQuery异步获取返回值中文乱码的解决方法
- Gridview Row事件响应方法无法获取其它UpdatePanel中控件数据的解决办法
- extjs使用AJAX调用方法结束不给返回值赋值问题解决
- 使用dwr同步调用导致无法获取js方法的返回结果问题的解决办法
- Ajax异步获取html数据中包含js方法无效的解决方法
- jquery 异步调用方法中不能给全局变量赋值的原因及解决办法
- C#调用C++dll文件获取数据得到乱码的解决方法
- 关于JS中setTimeout()无法调用带参函数问题的解决方法
- 安卓4.4以前不能直接调用js获取返回值,解决方法
- jquery ajax 异步调用方法中不能给全局变量赋值的原因及解决办法
- AngularJS出现$http异步后台无法获取请求参数问题的解决方法
- VS2013 F12无法转到函数的定义处,总是从“元数据”获取的问题的解决方法
- 异步获取的表单数据后台程序没有获取的一种情况及其解决方法
- vs2008中,静态库调用时报错:“无法解析的外部符号 _,该符号在函数 _wmain 中被引用”的解决方法
- C语言使用scanf函数获取数据后,使用getchar()无法获得字符的处理方法
- history.go(-1)无法获取表单数据的解决方法
- PHP system函数无法调用ncl命令解决方法