У меня есть код, который отлично работает на 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
с Android?
PS: я работаю под OSX с Titanium SDK 1.6.Для своих тестов на Android я использую эмулятор (API 2.2) и устройство (2.1update1).
Спасибо,
С уважением.