我有一个在 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 上运行良好的解决方法。如你所知,同步模式不能强制(即使文档中提到可以做到)所以我使用这个方法来xhr
同步调用第二个。
但为什么list2Length
是null
安卓呢?
PS:我在 OSX 下使用 Titanium SDK 1.6 工作。对于我在 Android 上的测试,我使用模拟器 (API 2.2) 和设备 (2.1update1)。
谢谢,
问候。