Haben mehrere .fetch() verspricht

Möchte ich Holen mehrere Bilder und verwandeln Sie in blob -. Ich bin ein Neuling zu Versprechen, habe ich versucht, aber ich komme nicht durch.

Hier unten, eine einzelne .fetch() Versprechen

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;
    });

Nun mehrere .fetch() Versprechen (funktioniert nicht)

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);
    });
Also, was bedeutet das .blob() - Methode zurück, ein blob oder eine promise?
.blob() gibt einen blob(), aber wenn Sie dabei mehrere Versprechen, müssen Sie return Promise.all(blobs) im .then(response). Nach diesem, in .then(blob) -> blob, array von blob-Objekten
OK, also wenn .blob() synchron ist, dann brauchen Sie nicht zwei .thens. Promise.all(promises).then(function(responses) {...}).catch(...);wird die Arbeit machen, ohne jemals benötigen, um erstellen Sie ein array von blobs.
wenn Sie versuchen, sich selbst das funktioniert nicht, ich bin ein Neuling zu Versprechen. Ich habe mehrmals versucht, zu tun, was Sie sagte, aber Sie müssen wieder das Versprechen response[i].blob() und in den nächsten .then haben Sie die blob-Objekt.
Ich Schreibe eine Antwort für Sie.

InformationsquelleAutor FrancescoN | 2016-06-24

Schreibe einen Kommentar