Я начал diggin 'в обещаниях и нашел интересный Promise.all.Как работает обещание.
Об этом говорится в MDN, что
Promise.all (итерация) метод возвращает обещание, которое решает, когда все обещания в итерации аргумента разрешил.
Что в основном означает, что заданные обещания решаются после, и если все обещания в списке аргументов были разрешены. Я попытался его реализовать. Я просто обещал ajax-вызов.
var get = function(url) {
return new Promise(function(resolve,reject) {
var xhtml=new XMLHttpRequest();
xhtml.open("GET",url);
xhtml.responseType = 'blob';
xhtml.onload = function() {
if(xhtml.status==200){
resolve(xhtml.response);
} else {
reject(Error("Error"+statusText));
}
}
xhtml.send();
});
}
get("one.jpg").then(function(response){
var blob = window.URL.createObjectURL(response);
var img = document.createElement("img");
console.log("Success"+response);
img.src = blob;
document.body.appendChild(img);
});
Который работает хорошо. Но после того, как я попытался добавить Promise.all, он сделал ошибку.
Promise.all(get).then(function(response){alert("done")});
это как я сказал, бросали ошибку «аргумент 1 из Promise.all не может быть преобразован в последовательность.» Так что я предполагаю, что я не понял смысл обещания. Как это работает?
'get' - это функция; 'Promise.all()' принимает массив объектов с обещаниями –