2016-03-17 27 views
0

我在for循環中發送多個Titanium.Network.createHTTPClient()。如何區分多個Titanium.Network.createHTTPClient()返回

當我處理返回文本時,我無法理解哪個響應對應於每個send()。

如何區分多個createHTTPClient()返回對象?

url[0] = http://api.yahoo.com?key=0 
url[1] = http://api.yahoo.com?key=1 
url[2] = http://api.yahoo.com?key=2 

var xhrArray = new Array(); 

for (var k = 0 ; k < 3;k++){ 
    var v = encodeURIComponent(url[k]); 
    xhrArray[k] = Titanium.Network.createHTTPClient(); 
    xhrArray[k].autoEncodeUrl = false; 
    xhrArray[k].onload = function(e){ 

     var response = JSON.parse(xhrArray[k].responseText);    
     //It doesnt work, How can I distinguish multiple xhr return?? 

    }; 
    xhrArray[k].open('GET', url[k], true); 
    xhrArray[k].send(); 
} 

回答

1

指定自定義屬性HttpClient的實例

xhrArray[k].myProperty = 'Hello'; 

抓住它從this例如:this.myProperty

完整的示例:

var url = [ 
     'http://api.yahoo.com?key=0', 
     'http://api.yahoo.com?key=1', 
     'http://api.yahoo.com?key=2' 
    ], 
    xhrArray = []; 

for (var k = 0; k < 3; k++) { 

    //var v = encodeURIComponent(url[k]); 
    xhrArray[k] = Titanium.Network.createHTTPClient(); 
    xhrArray[k].autoEncodeUrl = false; 

    // Assign your custom property 
    xhrArray[k].myProperty = k; 
    xhrArray[k].onerror = function(e) { 

     var response = JSON.parse(xhrArray[this.myProperty].responseText); 

    }; 
    xhrArray[k].open('GET', url[k], true); 
    xhrArray[k].send(); 
} 
+1

此落戶我的問題!謝謝! – whitebear

+0

歡迎你:) –