我正在处理文件上传器,其中大约10个文件通过for循环同时上传。
现在我正在尝试创建取消按钮以取消所有上传,但是使用我当前的代码,只有最后一次上传才会取消。
我已经包含了我的简化代码,但基本上它是一个循环,它通过一个图像数组(theAttach),并为每个图像设置一个xhrAttach来发送图像。所以说10张图片同时开始上传。
如果按下取消按钮,我会运行命令 xhrAttach.abort(); ,但只有最后一张图像才会中止。
有什么想法吗?
for (var i=0;i<theAttach.length;i++)
{
var xhrAttach = Ti.Network.createHTTPClient();
xhrAttach.timeout = 15000;
xhrAttach.onsendstream = function(e){
};
xhrAttach.onreadystatechange = function() {
if (xhrAttach.readyState != 4) return;
if ((i == theAttach.length) && (xhrAttach.readyState == 4))
{
}
};
xhrAttach.onerror = function() {
};
xhrAttach.open('POST', url, true);
xhrAttach.setRequestHeader('User-Agent', theuseragent());
xhrAttach.send(AttachmentTransmitArray);
}
答案 0 :(得分:1)
Cocco钉了它!他建议我将每个xhr缓存到一个容器数组中,因此我可以访问单个xhr并以此方式中止它,即xhrAttach[i].abort()
我这样做了,它完美无缺!谢谢cocco!