私はiPhoneでうまく機能するコードを持っていますが、Androidで実行する場合、一部を無視します。問題は、ネストされたcreateHTTPClient
呼び出しがあることです。
var xhr1 = Titanium.Network.createHTTPClient();
xhr1.open('GET',url1);
xhr1.send();
xhr1.onload = function(e) {
var list1 = JSON.parse(this.responseText);
var list1Length = list1.length;
Titanium.API.info('list1 length : ' + list1Length);
var fctForList2 = function(argument){
var xhr2 = Titanium.Network.createHTTPClient();
xhr2.open('GET',url1);
xhr2.send();
xhr2.onload = function(e) {
// display list where a value corresponds to the argument
var list2 = JSON.parse(this.responseText);
var list2Length = list2.length;
Titanium.API.info('list2 length : ' + list2Length);
};
};
var argument = list1[0].someValue;
fctForList2(argument);
};
したがって、上記のコードで、iPhoneでうまく機能する回避策を見つけました。ご存知のように、同期モードを強制することはできません(ドキュメントに強制できると記載されている場合でも)。そのため、このメソッドを使用して2番目のモードを同期的に呼び出しましたxhr
。
しかし、なぜAndroidを使用するのでしょうかlist2Length
。null
PS:私はOSXでTitaniumSDK1.6を使用しています。Androidでのテストでは、エミュレーター(API 2.2)とデバイス(2.1update1)を使用します。
ありがとう、
よろしく。