itemFileReadStoreを使用してボックスの配列にクエリの結果を保存しますが、戻り値が空です(おそらくfetchが非同期に実行されるため)。ItemFileReadStoreクエリとの非同期混乱
gotItems関数は、私が望むように配列を作成しますが、私はそれを自分のもとに戻すことはできません!私はgotItemsの部分に残りの機能を組み込むことができますが、それは私のコードを未知にしてしまいます。
gotItems関数からJavaScriptで一般的に使用する配列を返すにはどうすればよいですか?
function getContentFile() {
contentStore = new dojo.data.ItemFileReadStore({
url: '../config/content.json',
preventCache : true
});
var boxes = new Array();
contentStore.fetch({query: {partner : 'enabled'}, onItem: gotItems });
return boxes;
}
function gotItems(item) {
boxes.push(contentStore.getValue(item,'title'));
console.log(boxes);
return boxes;
}
dojo.addOnLoad(function() {
boxes = getContentFile();
console.log(boxes);
fadeIn('header', 500, 0);
});