我有以下代码。我所做的就是首先向第一个网址发送ajax请求。我收到了回复,并且需要回复一些数据。因此,我将这些数据放入user
对象中。该响应还包括另一个网址。然后,我再向该新网址发送一个Ajax请求。我从网址得到回应,并将该数据添加到user
对象中。在最后的then()
函数中我返回user
对象。但是,当我拨打get().done(function(data) { console.log(data) })
时,我只收到user.data
数组。它不包括第一个Ajax请求中的用户细节。 如何合并来自这两个请求的数据并作为承诺返回(可能延期)?链接ajax请求与jQuery的承诺
var get = function() {
var user = {};
return $.ajax({
url: 'URL',
method: 'GET',
type: 'JSON'
}).then(function(user) {
user['name'] = user.name;
user['joined'] = user.create_at;
return $.ajax({
url: user.url,
method: 'GET',
type: 'JSON'
});
}).then(function(data) {
user['data'] = data;
return user;
});
},
var user = {};'user'与'user(user){'中的'user'不一样,并且你在回调的前两行所做的是基本上什么都没有......重命名'var user'到'var anythingButUserOrDataForThatMatter' –