gpt4 book ai didi

javascript - 多次ajax调用后执行函数

转载 作者:行者123 更新时间:2023-11-30 00:18:24 26 4
gpt4 key购买 nike

我想在多个 ajax 调用完成时触发一个函数。经过一些研究,我发现了 jquery $.when 函数。我测试了这个功能,但它不起作用。有人知道如何解决这个问题吗?

var root = 'http://jsonplaceholder.typicode.com';

$(function(){
restCall.ajaxcalls();
})

var restCall =
{
ajaxcalls: function(){
$.when(this.getAlbums(), this.getPhotos()).done(function(fetchedAlbums,fetchedPhotos){
console.log(fetchedAlbums);
console.log(fetchedPhotos);
});
},

getAlbums:function() {
$.ajax({
type: 'GET',
url: root + '/albums'
}).done(function(response){
return response;
}).fail(this.ajaxFail);
},

getPhotos: function(){
$.ajax({
type: 'GET',
url: root + '/photos'
}).done(function(response){
return response;
}).fail(this.ajaxFail);
},

ajaxFail: function(xhr,message,error){
console.log("het liep mis met de ajax call",xhr,message,error);
}
};

控制台日志返回未定义,但我想要通过 ajax 调用获取的对象。

有人知道哪里出了问题吗?

最佳答案

您永远不应该尝试在 .done() 处理程序中返回一个值,因为它是一个异步调用。相反,返回由您的 ajax 调用返回的 promise ,并像这样在该结果上使用您的 $.when():

getAlbums: function() {
return $.ajax({
type: 'GET',
url: root + '/albums'
}).fail(this.ajaxFail);
},
getPhotos: function(){
return $.ajax({
type: 'GET',
url: root + '/photos'
}).fail(this.ajaxFail);
}

关于javascript - 多次ajax调用后执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34007638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com