我想了解JS中的JSON,回調等。從下面的更改示例中,您將看到我正在從$ .getJSON進行函數回調。然後,我跳入getSomething()並期望它改變我的結果變量。它在功能的範圍內改變它,但不是當我跳出該功能時。在JS/JSON函數內返回變量
您將從2 console.log()中看到第一個顯示正確,第二個顯示不正確。我確定我的問題的答案與通過返回變量有關。回撥,但可以有人啓發
我:)
謝謝!
CODE:
$.getJSON('/cart.js', function (cart, textStatus) {
var result = '';
result += 'Sample Stuff';
StackOverflow.getSomething(param1, param2, function(a, b) {
for(j=0; j < b.length; j++) {
if (b.options[j] != 'Default Title') {
if (a.options[j].name.indexOf("Color") > -1) {
result += b.options[j].name;
console.log(result); // <-- It comes out correct (Sample Stuff + b.options...)
}
}
}
});
console.log(result); // <-- It comes out incorrect, just (Sample Stuff)
});
感謝您的解釋終值相應地更新。我想我可能已經假設了大部分,但仍然不知道如何讓getSomething()中的「結果」與getJSON()綁定,以便在getJSON()的其餘部分執行之前發生。 – 2010-07-30 20:28:40
如果你依賴'result'來正確getJSON的其餘部分才能正常工作,那麼你必須將其餘的getJSON代碼放入'StackOverflow.getSomething'的回調中:) – 2010-07-30 20:33:32