Faire plusieurs .fetch() de promesses

Je veux extraire plusieurs images et de les transformer en goutte. Je suis un newbie sur des promesses, j'ai essayé mais je ne peux pas passer à travers.

Ici ci-dessous, une seule .fetch() promesse

fetch('http://cors.io/?u=http://alistapart.com/d/_made/d/ALA350_appcache_300_960_472_81.jpg')
    .then(function(response) {
        return response.blob();
    })
    .then(function(myBlob) {
        var objectURL = URL.createObjectURL(myBlob);
        document.getElementById('myImage').src = objectURL;
    });

Maintenant plusieurs .fetch() promesse (ne fonctionne pas)

var promises = [];

for (var i = values.length - 1; i >= 0; i--) {
    promises.push(fetch(values[i]));
}

Promise
    .all(promises)
    .then(function(response) {
        for (var i = response.length - 1; i >= 0; i--) {
            return response[i].blob();
        }
    })
    .then(function(blob) {
        console.log(blob.length); //undefined !!!
        for (var i = blob.length - 1; i >= 0; i--) {
            console.log(blob[i]);
            lcl_images[i].value = URL.createObjectURL(blob[i]);
            document.getElementById(lcl_images[i].id).src = objectURL;
        }
    })
    .catch(function(error) {
        console.log(error);
    });
Donc, quelle est la .blob() de retour de méthode, un blob ou un promise?
.blob() renvoie un blob(), mais si vous êtes en train de faire de multiples promesses, vous avez à return Promise.all(blobs) dans .then(response). Après cela, dans .then(blob) -> blob est tableau d'objets blob
OK, donc si .blob() est synchrone, alors vous n'avez pas besoin de deux .arrêtera. Promise.all(promises).then(function(responses) {...}).catch(...);va faire le travail sans jamais avoir besoin de créer un tableau d'objets blob.
si vous essayez vous-même, cela ne fonctionne pas, je suis un newbie sur promesse. J'ai essayé plusieurs fois de faire ce que vous avez dit, mais vous devez retourner la promesse response[i].blob() et dans la prochaine .then vous aurez l'objet blob.
Je vais écrire une réponse pour vous.

OriginalL'auteur FrancescoN | 2016-06-24