我有两个函数,我想在它们之间同步第一个函数是异步函数。只有当我从第一个函数得到结果时,我才想调用第二个函数,我尝试了这段代码
$.when(update().then(function (data) {
alert(1);
$.when(func1(),func2()).then( function(dataFunc1,dataFunc2) {});
});
update : function(){
var dfd = $.Deferred();
d3.json("test.json", function(json) {
var data = createData()
dfd.resolve(data);
return dfd.promise();
}};
调用更新的问题,然后调用 d3,json 并且不执行 d3,json 的逻辑,因为它是异步函数,然后引发警报(1)。
我认为只有当更新功能完成并且我将获得来自 d3.json 的数据时,才会发出警报(1)。
我错过了什么 ?我还阅读了关于 reslove 和 promise 的内容,是否仅在需要传递参数时才需要使用 reslove ?什么时候需要使用 promise?