Ich versuche, eine Funktion zu schreiben, die eine for
-Schleife in einem Versprechen enthält, jedoch führt die Schleife nur bei Iteration und das Versprechen wird nie gelöst.For-Schleife nicht abgeschlossen innen Versprechen
Mein Code sieht wie folgt aus:
function appendPosts() {
return functionThatReturnsAPromise()
.then(result => {
return new Promise((resolve, reject) => {
var list = [];
result.forEach(item => {
//do stuff to item
list.push(item);
});
resolve(list);
});
})
.then(list => {
return new Promise((resolve, reject) => {
//This loop only runs once, even when list has contains many items
for (var i = 0; i < list.length; i++) {
document.querySelector("someSelector").appendChild(list[i]);
}
resolve();
});
});
}
Klar ich etwas falsch mache. Irgendwelche Ideen?
Danke für Ihre Zeit. - Daniel
Was ist der Zweck des 'Promise' Konstruktor innerhalb' .then() '? Warum iteriere man 'result' nur, um' item' in ein Array zu schieben? – guest271314
Ich glaube nicht, dass es möglich ist, dass die for-Schleife nur einmal ausgeführt wird, wenn die Liste länger ist. Überprüfen Sie die Iterationen und list.length. – xDreamCoding
Vielleicht tritt in der ersten Iteration eine Ausnahme auf? Verwenden Sie ['catch'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch). –