PrinceMaisle: async await Chaos

Beitrag lesen

Hallo,

Hi

Ich habe eine etwas komplexere Ausgangssituation, die sowohl fetch, als auch ein Durchreichen eines Parameters (bzw. eigentlich eines Arguments) erfordert.

Hab mein Problem soweit es geht simplifiziert, denn wer nicht simplifiziert, verliert.

Aha.

Im Endeffekt habe ich folgenden Code:

const main = (async () => {
	const endergebnis = await [fetchNmutate1, fetchNmutate2].reduce(async (acc, cur) => {
		const zwischenergebnis = await cur(acc);
		return zwischenergebnis;
	}, 0); // Ergebnis hier: NaN // ?
})();

Aber selbst wenn ich die fetch Funktionalität weglasse, und die beiden Funktionen fetchNmutate1 und fetchNmutate2 z.B. auf eine simple Additionen oder Multiplikation (etc. ) beschränke (und das Resultat natürlich returne), lautet das Endresultat immer NaN.

Warum?

Was wäre, wenn du zum Beispiel versuchst, 25 durch „Banane“ zu teilen? Es macht nicht viel Sinn, oder? Aber, 25 geteilt durch Banane ist NaN. Daher ist im Grunde, das was wegsimplifiziert wurde, vermutlich Fehlerquelle.

Vielleicht hilft das weiter: Es gibt fünf Haupttypen von Fehlern, die NaN als Ergebnis zurückgegeben werden:

  • Wenn die Zahl nicht geparst werden kann (parseInt("text"));
  • Jede mathematische Operation, bei der das Ergebnis keine reelle Zahl ist (Math.sqrt(-1));
  • Verwendung von NaN in der mathematischen Operation als Operand;
  • Verwenden der unbestimmten Formen (undefined+ undefined, Beispiel mit infinity geteilt durch infinity usw.);
  • Einbeziehung der Zeichenfolge als Element einer mathematischen Operation

Grütze