다음 코드가 있습니다. 내가하고있는 일은 먼저 아약스의 첫 번째 URL을 요청하는 것입니다. 나는 응답을 얻었고 그 응답으로부터 어떤 데이터가 필요하다. 그래서 그 데이터를 user
개체에 넣습니다. 그 응답은 또한 또 다른 URL을 포함합니다. 그런 다음 새 URL에 또 다른 아약스 요청을합니다. 그리고 URL에서 응답을 얻고 그 데이터를 user
개체에 추가합니다. 마지막으로 then()
기능에서 나는 user
개체를 반환합니다. 그러나 get().done(function(data) { console.log(data) })
으로 전화하면 user.data
배열 만 사용할 수 있습니다. 첫 번째 아약스 요청에는 사용자의 세부 정보가 포함되지 않습니다. 이 두 요청의 데이터를 병합하고 약속 (지연된 어쩌면)으로 반환 할 수 있습니까? 이 기능jquery 약속으로 연결된 아약스 요청
function(user) {
user['name'] = user.name;
user['joined'] = user.create_at;
return $.ajax({
url: user.url,
method: 'GET',
type: 'JSON'
});
}
당신은 함수의 지역 scope에 user
변수를 만드는에서
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'는'function (user) {'에있는'user'와 같지 않습니다. 그리고 콜백의 처음 두 줄에서 무엇을하고 있습니까? 본질적으로 아무 것도 ... var 사용자 이름을'var anythingButUserOrDataForThatMatter'로 바꿉니다. –