XMLHttpRequest超时时间在Native下无效

1.6 beta 3

let request = new XMLHttpRequest();
request.timeout = options.timeout;

超时时间设置在Native下无效(Android),最终也会超时,但需等很久,不是设置的超时时间。

Web(Chrome)下没问题。

换fetch吧···亲测可行···

什么是 fetch 呀?

你timeout传入的数值是?

5000
5秒钟

数了下,Native下没按设置时间超时,超时时间大概是60秒。
windows chrome下是正常的设置的5秒就超时了。

确认了确实有问题

已修复

https://github.com/cocos-creator/cocos2d-x-lite/pull/742

@panda

这个貌似在1.7.0 rc1中又出现了。。。。

在Native下不是按照设置的超时时间超时的

request.timeout = options.timeout;

你这个timeout设置的值多少?日志?

options.timeout = options.timeout || 10000;

request.timeout = options.timeout;

设置的10秒

能否在这句之前,确认一下options.timeout的值是多少?

options.timeout = options.timeout || 10000;
options.timeout 是null,我都没传这个参数,所以就是默认值10000

其他平台呢?比如win或者mac?

你可以在这个地方断点或者打日志:

jsb_xmlhttprequest.cpp

void XMLHttpRequest::setTimeout(unsigned long timeoutInMilliseconds)
{
    _httpRequest->setTimeout(timeoutInMilliseconds / 1000.0f);
}

看看这块逻辑有没有进入,还有打印一下timeoutInMilliseconds

win10 + chrome浏览器下没有问题,10秒准时会超时

如果在Android Native下会很久很久才超时,大概是50多秒,现象跟Panda修改的1.6的bug现象一模一样。。。

我测试一下先。

FIXED AT:

https://github.com/cocos-creator/cocos2d-x-lite/pull/1014

谢谢反馈。

问一下,1.7.0正式版是有这个问题吗?

是的,但合并一下这个补丁即可。

这个修改影响iOS么?iOS的需要重新打包么?@dumganhar