Я использую данные Promise + AJAX для загрузки на мою страницу.
function $myAjax(url, callback) {
let p = new Promise(function(resolve, reject) {
$.ajax({
url: url,
method: "GET",
data: "data",
async:false,
cache: false,
success: function(resp) {
callback(resp);
resolve();
},
failure: function(xhr) {
reject();
}
});
});
return p;
}
$myAjax('api/2006.json', function(resp1){
mapRender('svg1',resp1,'#b4cdff');
}).then(function() {
return $myAjax('api/2010.json', function(resp2) {
mapRender('svg2',resp2,'#b4cdff');
});
}).then(function() {
//... and so on
})
Но у меня есть проблема, чтобы вытащить resp1
и resp2
из этой функции, кроме mapRender
Мне нужно что-то resp1 & resp2, и что-то не подходит внутри $myAjax
.
Я пытаюсь вставить resp
в массив.
$myAjax('api/2006.json', function(resp1) {
array.push(resp1)
mapRender('svg1',resp1,'#b4cdff');
})
console.log(array)
console.log(array)
=> показать данные, но со значком «значение, указанное ниже, было оценено только сейчас»
console.log(array[0])
=> не определено
Что с этим не так?
И как я могу получить соответствующую форму $myAjax
?