Ich habe den folgenden Code:Versprechen basierte Funktion for-Schleife, die nicht laufen asynchron
function asyncLoop() {
return new Promise(function(res, rej) {
for(let i=0;i<=400000000;i++) {
if(i===400000000) {console.log("done"); res();}
}
});
}
asyncLoop().then(()=>{console.log("then")});
console.log("out");
Ich erhalte die folgende Ausgabe:
done
out
then
Nach meinem Verständnis von Versprechungen, die asyncLoop hätte asynchron laufen sollen und folgendes hätte sein sollen:
Was? Vermisse ich?
https://stackoverflow.com/a/5436869/1278540 dann vs getan –
@DebajyotiDas das ist über jQuery verspricht - das nutzt native. – Jamiec
Versprechen haben keine "magischen" Eigenschaften, etwas asynchron zu machen, das nicht bereits asynchron ist. Sie sind lediglich ein standardisiertes Benachrichtigungs- und Fehlerbehandlungsschema - mehr nicht. Wenn die zugrundeliegende Operation nicht asynchron ist, wird sie NICHT durch ein Wrapping in eine Zusage irgendwie asynchron gemacht. – jfriend00