Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保jQuery$。在继续之前完成每个_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 如何确保jQuery$。在继续之前完成每个

Javascript 如何确保jQuery$。在继续之前完成每个,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我正在使用add\u record方法开发jQuery插件(见下文)。如果查看函数定义,有两个$。每个循环将值附加到plugin.payload 现在,一切正常。然而,如果记录或选项真的很大呢?我是否需要担心在发出传输调用之前,$.each()没有完成 如果是,解决这个问题的最佳方式是什么 plugin.add_record = function (records, options, callback) { if (typeof (options) == "function") {

我正在使用
add\u record
方法开发jQuery插件(见下文)。如果查看函数定义,有两个
$。每个
循环将值附加到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;
    });
}

不,不需要担心,因为和是同步函数

在同步执行语句时,只有在完成一条语句后,它才会移动到下一条语句


只有在循环内部执行一些异步操作(如ajax请求/动画等)时才会出现问题,而在本例中,您没有执行这些操作。每个
都是同步的,因此不必担心调用无法完成。您唯一会遇到麻烦的时候是在循环中启动异步的东西(比如ajax调用)。

可能重复的,我在过去几天中经常遇到这个问题。您是否有关于如何处理该用例的示例和/或推荐模式?(每个里面都有阿贾克斯)@doremi你需要自己跟踪它。例如:@doremi我建议使用Promises/A(这就是
$.ajax
返回和jQuery调用的内容)。然后您可以
$。当
浏览
$的结果时。每个
(即,依次返回每个承诺并使用每个like映射)。