Javascript JQuery.getJSON().done()函数确切地在什么时候被调用?
大家好,我对javascript非常陌生,我有一些关于.done()如何与.getJSON()函数一起工作的问题。以下是一个例子: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
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的,那么是一个标准实现。