2

我正在开发一个文件上传器,其中大约 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);        

                }                           
4

1 回答 1

1

可可成功了!他建议我将每个 xhr 缓存到一个容器数组中,因此我可以访问单个 xhr 并以这种方式中止它,即xhrAttach[i].abort()

我做到了,而且效果很好!谢谢可可!

于 2013-06-23T14:26:54.563 回答