0
私はこのJavaScript関数を持っています。JavaScriptのAjaxコールとコールバック
function create_categories(callback) {
cart_cats = [];
E.Cart.calculateTotal(function(order) {
cart_total = order.total;
cart_items = order.cart.items;
// loop through the items to get their categories.
for(var i=0; i<cart_items.length; i++) {
get_product_category(cart_items[i].product.id);
}
});
setTimeout(callback, 3000);
}
get_product_category
機能はcart_item
のカテゴリを取得するには、AJAX呼び出しを行い、その後、グローバルに宣言されcart_cats
配列、にそれをプッシュして、私は私のcallback
でそれを使用する必要がありますここでには多くの項目が含まれている可能性があるため、create_categories
関数を実行してから実行する最大時間を決めることができないため、setTimeout
は使用しません。
forループが実行を終了するときにコールバックを呼び出す必要があります。
'callback;は' callback(); 'にする必要があります。 –
OK ..それは動作します!..しかし、あなたはそれを理解するのを助けることができます。私の理解は、 'get_product_category'がajax呼び出しを行っているため、コントロールは先に進んで(forループから)、if文を実行します。そうじゃない?それはいつ前に進んでいくのですか? –
@ムバシャール:これがうまくいけば、それを受け入れることを検討しますか?ここでは必須ではありませんが、回答者と今後の読者にとって役に立ちます。 – halfer