簡體   English   中英

如何確保jQuery $ .each在繼續之前完成

[英]How to ensure jQuery $.each is finished before continuing

我正在使用add_record方法處理jQuery插件(見下文)。 如果查看函數定義,有兩個$.each循環將值附加到plugin.payload。

現在,一切正常。 但是,如果記錄或選項真的很大怎么辦? 在發出傳輸呼叫之前,我是否需要擔心$.each()沒有完成?

如果是這樣,解決這個問題的最佳方法是什么?

plugin.add_record = function (records, options, callback) {
    if (typeof (options) == "function") {
        callback = options;
        options = undefined;
    }
    if (options) {
        $.each(options, function (index, value) {
            plugin.payload.append($(value));
        });
    }
    $.each(records, function (index, value) {
        plugin.payload.append($(value));
    });
    transmit('API_AddRecord', plugin.payload, 'db', function (data) {
        return typeof (callback) == "function" ? callback(data) : data;
    });
}

$.each是同步的,因此不用擔心調用將無法完成。 你遇到麻煩的唯一一次是在循環中啟動異步(比如ajax調用)。

不需要擔心,因為$ .each.append()是同步函數。

在完成一個語句后,語句的同步執行將轉移到下一個語句。

唯一的問題可能只有你在循環中做一些異步操作,就像ajax請求/動畫等你在這種情況下你沒做的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM