lvzhm
lvzhm
  • 发布:2016-08-30 17:10
  • 更新:2020-03-04 13:47
  • 阅读:10068

mui的ajax同步调用问题

分类:MUI

在使用mui.ajax时,我将async设置为false,程序确实等待请求结束了。但是执行下面的代码时,按理应该是先执行ajax里面的success(),再之后ajax外边的方法。但是现在的执行顺序是先执行外边的,再执行success,导致我这边无法使用ajax返回的数据。由于调用函数的逻辑比较复杂,而且包含返回值,所以很难用callback传入success中去实现。如附件中所示,其中20秒的时间差,是我后台卡断点之后等待的时间。
请问这个是mui的bug吗,还是我的使用方式不对呢?

2016-08-30 17:10 负责人:无 分享
已邀请:
lvzhm

lvzhm (作者)

假如5+不支持的话,为什么是等到请求完了之后,才只能下面的方法的呢,按照异步的方式来理解的话,应该是马上执行的,不应该是20秒之后啊?

DCloud_UNI_FXY

DCloud_UNI_FXY

我这里测试没问题:

console.log('start');  
                mui.ajax({  
                    url: 'http://runjs.cn/action/echo/json',  
                    async: false,  
                    data: {  
                        'name': 'mui'  
                    },  
                    success: function(response) {  
                        console.log(response);  
                    }  
                });  
                console.log('end');

输出:

start  
{"name":"mui"}  
end
  • lvzhm (作者)

    是真机调试的情况下,还是用浏览器调试的呢?

    2016-08-30 21:45

  • DCloud_UNI_FXY

    回复 lvzhm:真机

    2016-08-30 21:52

  • lvzhm (作者)

    你好,我在HelloMui里面测试您的代码是可以的,但是为啥把这段代码放到我们的程序里面就不行呢?考虑可能是因为mui.js和mui.min.js版本的问题,我还把HelloMui里面的mui.js和mui.min.js拷贝了过来。但是还是先输出的:start、end、{"name":"mui"}

    2016-08-31 09:38

  • DCloud_UNI_FXY

    回复 lvzhm:发个简单的测试工程

    2016-08-31 16:46

  • jqr

    设置crossDomain:true后,同步无效。。求解。。

    2017-01-19 09:35

  • 3***@qq.com

    回复 jqr: 我也遇到了,怎么解决的,求回复!

    2020-01-13 15:51

a***@163.com

a***@163.com - 购有利

我也是遇到这种情况,在安卓手机上正常,但是在苹果手机不行,记得原来苹果手机是可以的,是不是HBulder升级后的Bug

z***@163.com

z***@163.com

我也遇到了这个问题,后来是吧代码复制一份放到success里面去才能在苹果上使用,不知道是不是苹果浏览器更新了规则还是咋的,请问下官方有在解决这个问题吗?还是说现在都去弄uniapp了,mui不在支持了?

该问题目前已经被锁定, 无法添加新回复