variable = 0;
function change() {
variable = 1;
}
go = newVars();
go.onLoad = function(success) {
trace("#First");
change();
}
go.load('http://www.stackoverflow.com/variables');
trace("#Second");
trace(variable); // output = 0;
Проблема в том, что он выполняет #Second
до #First
, что означает, что объект загружен не полностью, но, тем не менее, код продолжается. Есть ли способ справиться с этим? Я попытался использовать цикл while, но это уродливо и приводит к сбою флэш-памяти. Есть ли приличный способ справиться с этим, это связано с лучшей структурой кода / программным потоком или есть технический способ заставить его ждать? Также обратите внимание: этот код выполняется на стороне сервера, что означает, что кадры не задействованы.
UPDATE:
Когда проекты становятся больше, это становится очень уродливо, особенно когда вы получаете многократные вещи с сервера, вам приходится использовать очень глубокое вложение, вы должны повторять один и тот же код, например, для покупки серийного номера:
a.onload() {
if(moneyAmount > 10){
b.onload(pay) {
sendProduct();
d.onload(serial) {
print(serial);
}
d.load('www.so.com/getSerial');
}
b.load('www.so.com/pay?amount=5');
}else{
c.onload(wallet) {
displayWallet(wallet)
}
c.load('www.so.com/getWallet);
}
}
a.load('www.so.com/checkMoneyAmount');