Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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.getJSON().done()函数确切地在什么时候被调用?_Javascript_Jquery_Promise_Getjson - Fatal编程技术网

Javascript JQuery.getJSON().done()函数确切地在什么时候被调用?

Javascript JQuery.getJSON().done()函数确切地在什么时候被调用?,javascript,jquery,promise,getjson,Javascript,Jquery,Promise,Getjson,大家好,我对javascript非常陌生,我有一些关于.done()如何与.getJSON()函数一起工作的问题。以下是一个例子: array1 = []; loaded = false; var req = $.getJSON("url", function(json) { $.each(json, function(i, item) { array1.push(item.name); }); }); req.done(function

大家好,我对javascript非常陌生,我有一些关于.done()如何与.getJSON()函数一起工作的问题。以下是一个例子:

array1 = [];

loaded = false;

var req = $.getJSON("url", function(json) {
    $.each(json, function(i, item) {
        array1.push(item.name);
    });
});

req.done(function(){   
    loaded = true;
    func(array1);
});
.done()函数是否等待回调函数中作为参数传递的代码首先执行,或者.done()函数是否有可能在回调函数之前启动并完成。例如,.done()是否有可能在数组中填满所有数据之前执行

在给定的示例中,这样做是否有用?除了能够在成功回调函数之后调用.done()之外


如果我想在数组中充满检索到的所有数据后立即调用func(array1),那么最好是在回调函数中还是在.done()中进行调用?

a)不要使用
done
,而是使用
then
,b)不要同时传递回调和使用
then
。只需完成
中的所有工作,然后执行
回调(它还接收
json
参数)。GetJson违背承诺,因此所有工作都是按特定顺序进行的。一旦满足或拒绝标准,则实例化met@Bergi在getJSON的JQuery文档中,我没有看到任何关于.then()的内容。为什么.then()比使用回调或.done()更好?我在哪里可以了解它?@Raphael你说的按特定顺序调用是什么意思,首先调用的是什么?@TwoheadedFearsee(它还记录了调用顺序)和
done
fail
是特定于jQuery的,那么
是一个标准实现。