我的链接返回数据存在问题,然后是第一个延期数据。第一个例子有效:
api.getData().done(function(data){
api.getData2().done(
function(data2){
$.log('success', data2);
});
});
但第二个例子应该有效,第二个.then()有data2,但由于某种原因,它与data1相同。
api.getData().then(function(data1){
return api.getData2();
}).then(
function(data2){
$.log('success', data2);
});
有什么建议吗?
答案 0 :(得分:1)
$.when将接受两个异步函数,它们返回一个promise并在两者完成时执行.then()函数:
$.when( api.getData(), api.getData2() ).done(function(data, data2) {
$.log('success', data2);
});
如果出于某种原因(比如需要数据),您需要在getData()
之前执行getData2()
,那么确实不需要.then()
,因为您的第一个示例似乎足够有效?
答案 1 :(得分:1)
所以经过一些研究JQuery Deferred.Pipe我发现我无法链接。然后,而是需要使用如下所示的管道(.pipe()是可链接的):
api.getData().pipe(function(data1){
return api.getData2();
}).then(
function(data2){
$.log('success', data2);
});