Was ist die Ursache für diesen asynchronen Fehler und warum wird er mit einer blockierten Scoped Const Variablen behobenJavaScript

Javascript-Forum
Guest
 Was ist die Ursache für diesen asynchronen Fehler und warum wird er mit einer blockierten Scoped Const Variablen behoben

Post by Guest »

Ich habe das asynchrone Programmierkapitel von eloquentem JavaScript durchlesen und bin auf dieses asynchrische Fehlerproblem gestoßen. Die hier angebotene Lösung bestand darin, am Ende ein .join () zu machen, aber ich stieß auf eine andere Lösung, indem ich eine blockierte Scoped Const verwendete. Das Problem ist, dass ich nicht herausfinden kann, warum er den Fehler behebt. Wenn jemand eine Erklärung anbieten könnte, wäre dies sehr geschätzt.

Code: Select all

const resolveName = (fruitname) => {
return new Promise((resolve) => {
resolve(fruitname);
});
};

async function countLetters(fruitList) {
let result = "";

await Promise.all(
fruitList.map(async (fruit) => {
result += fruit + ": " + (await resolveName(fruit)).length + "\n";

// Fix: storing the string into a variable fixes this.
// const s = fruit + ": " + (await resolveName(fruit)).length + "\n";
// result += s;
})
);

return result;
}

const arr = ["apple", "banana", "cherry"];
const p = countLetters(arr);
p.then((r) => console.log(r));< /code>
< /div>
< /div>
< /p>
Ich habe versucht, so nach einer Lösung zu debuggen und zu durchsuchen. Die erwartete und tatsächliche Ausgabe ist wie unten: < /p>
Erwartet:
apple: 5 banana: 6 cherry: 6 < /code> < /p>
tatsächlich:
cherry: 6
Hier ist ein Link zu einem Runnable, der den Fehler reproduziert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post