AJAX 异步请求 等待异步请求执行结果 执行下一个函数

A19901217 2012-03-28 11:01:33
我有两个JS函数 A函数 B函数

A是AJAX 异步请求函数。
B是普通函数 我需要在A执行完成以后 执行B函数。

注意 不是吧B放在A的回调函数里面。

他们的执行顺序是并列的。求代码。别光说。
...全文
9230 点赞 收藏 27
写回复
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiyonghu 2014-08-19
我刚解决完这个压抑了我两天的问题,果断用回调函数,在回调函数中决定是否继续执行
回复
zapdos 2014-08-18
引用 25 楼 shao_winds 的回复:
[quote=引用 21 楼 zapdos 的回复:] 真搞笑,楼上一大堆人还没了解楼主的想法就开始装必 楼主的意思是想实现 异步请求,同步等待 这样做有什么好处呢 异步AJAX请求,避免了同步AJAX请求中页面卡死的情况 这样可以打开一个进度条什么的让客户觉得这个东西还是在运行的 同步等待,主要是由于业务原因这个请求必须等它返回才能继续往下走
可是你说的,不就是用 异步回掉函数吗?[/quote] 虽然是坟贴,还是回一下 当然不是异步回调,如果是就不用头痛了 你再仔细看看我的描述 如果非要用回调实现,就需要使用while之类的忙时等待方式,消耗CPU
回复
明月书君 2014-08-17
引用 21 楼 zapdos 的回复:
真搞笑,楼上一大堆人还没了解楼主的想法就开始装必 楼主的意思是想实现 异步请求,同步等待 这样做有什么好处呢 异步AJAX请求,避免了同步AJAX请求中页面卡死的情况 这样可以打开一个进度条什么的让客户觉得这个东西还是在运行的 同步等待,主要是由于业务原因这个请求必须等它返回才能继续往下走
可是你说的,不就是用 异步回掉函数吗?
回复
11宁静致远 2014-05-06
then.js
回复
zapdos 2013-12-04
引用 22 楼 czd327917086 的回复:
[quote=引用 21 楼 zapdos 的回复:] 真搞笑,楼上一大堆人还没了解楼主的想法就开始装必 楼主的意思是想实现 异步请求,同步等待 这样做有什么好处呢 异步AJAX请求,避免了同步AJAX请求中页面卡死的情况 这样可以打开一个进度条什么的让客户觉得这个东西还是在运行的 同步等待,主要是由于业务原因这个请求必须等它返回才能继续往下走
请问怎么实现呢?[/quote] 查了不少资料,目前未发现好的解决方法,你要把主线程挂起,必定造成浏览器假死。 目前我都是通过回调的方式来实现,这样一来代码的运行方式都是通过异步调用,写起来费劲多啦。 比方说你要写一个公共通讯函数,就必须通过回调来往下执行;而不是通讯后一直等待数据回来,然后主线程再往下执行
回复
末世剩人 2013-10-16
引用 21 楼 zapdos 的回复:
真搞笑,楼上一大堆人还没了解楼主的想法就开始装必 楼主的意思是想实现 异步请求,同步等待 这样做有什么好处呢 异步AJAX请求,避免了同步AJAX请求中页面卡死的情况 这样可以打开一个进度条什么的让客户觉得这个东西还是在运行的 同步等待,主要是由于业务原因这个请求必须等它返回才能继续往下走
请问怎么实现呢?
回复
zapdos 2013-09-27
真搞笑,楼上一大堆人还没了解楼主的想法就开始装必 楼主的意思是想实现 异步请求,同步等待 这样做有什么好处呢 异步AJAX请求,避免了同步AJAX请求中页面卡死的情况 这样可以打开一个进度条什么的让客户觉得这个东西还是在运行的 同步等待,主要是由于业务原因这个请求必须等它返回才能继续往下走
回复
wjxingzhe 2013-08-05
引用 11 楼 class584520 的回复:
我觉得可能你的思想更适合用同步请求的方式。异步请求是的意思的是在执行这个函数的同时去执行另一个函数。
是的说
回复
雨落无影 2013-06-27
不是,楼主,还没说明白呢,多贴点儿代码啊、
回复
yubinbin1230 2013-01-11
这么2的,很简单的,不用那么复杂的, 再A的ajax请求的回调函数中,再调用函数B,就没有问题了
回复
Victory23-Tmac 2012-08-29
楼主,我也遇到一个相同的问题!我想在A执行完之后执行B函数!其中A中又包含着异步函数!求解答。。。在线等!
回复
A19901217 2012-03-30
说一下 设定为同步是可以等待 但是在等待的过程中 页面会卡死。
回复
A19901217 2012-03-30
搞定 代码 还是我自己来贴吧。
$("body").ajaxComplete(function () {
op.isStop();

});

利用JQUERY的一个AJAX 请求完成 可以实现AJAX 异步请求等待。
回复
小昭 2012-03-29
纯要代码的,一般不会有人给,给你思路已经不错
回复
javamavin 2012-03-29
刚才看了一遍楼主的标题懂了上边代码改成这样:
funciton A(){
$.ajax({
url: "index.html",//异步请求路径
async:false,//默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
success: function(){//回调函数

}});
B();
}
现在就需要等异步请求执行完,后在执行B函数了,不过这个是用jquery
回复
javamavin 2012-03-29
没明白楼主的意思 A函数里应该是一个ajax异步请求,既然你不在回调函数中调用你可以在A函数结束前调用啊!这样代码一边执行ajax异步请求一边执行B函数没有顺序,是并列的啊
funciton A(){
$.ajax({
url: "index.html",//异步请求路径
success: function(){//回调函数

}});
B();
}
回复
想念旧时光 2012-03-29
我觉得可能你的思想更适合用同步请求的方式。异步请求是的意思的是在执行这个函数的同时去执行另一个函数。
回复
hch126163 2012-03-29
1、异步中 回调
2、设置同步调用

3、自己setTimeout 递归判断 异步方法是否执行完毕
回复
hellNo 2012-03-28
貌似不可能
回复
A19901217 2012-03-28
确实很蛋疼。异步请求加入设置一个全局变量。在回调函数里面修改全局变量 让在第二个函数执行之前来判断这个变量。 因为有时间差。 判断这个变量的时候 获得是指 是这个全局变量的初始值。所以 等待异步请求结果还是没有实现。。纠结 想屎 有木有。。。
回复
发动态
发帖子
JavaScript
创建于2007-09-28

8.4w+

社区成员

Web 开发 JavaScript
申请成为版主
社区公告
暂无公告