Es gibt einen guten Mechanismus, um Asycn-Methoden in TS zu verketten: Versprechungen. Sie können do1.then (() => ...). Catch (() => ...).Ist es in Ordnung, Maybe <T> und Ergebnis <T> Typen in Typescript/Javascript zu verwenden?
Aber was zu tun, wenn ich synchrone Methoden verketten möchte? In dieser Frage How to avoid logic duplication when promisifying js methods? war ich Ratschläge nicht zu versprechen, es zu tun.
In C# war ich glücklich, verwenden Sie vielleicht < T> und Ergebnis < T> Klassen, es zu tun. Jede Methode würde eine Klasse Ergebnis zurückgeben. Es würde Methoden haben OnSuccess (Ergebnis der Methode in es) und OnFailure übergeben (Fehler in es).
Mit Nutzung dieser Code Klassen TS aussehen würde:
public processAndDouble(input: number) : number {
return processData(input)
.onSuccess((processedInput)=>{
return processedInput * 2;
})
.onFailure((error)={
return 0;
})
}
public processData(input: number) : Result<number> {
if(input >= 0)
return Result.Ok(input + 1);
else
return Result.Fail("can't process negative numbers");
}
So ist die Frage, ist es in Ordnung, diesen Ansatz zu benutzen?
Widerspricht es nicht einigen Best Practices, Prinzipien?
Es ist in Ordnung, solange Sie 100% sicher sind, dass es nie einen Async-Aufruf in der Kette geben wird. Sobald es passiert, müssen Sie alles in Versprechen umwandeln. – artem
Danke, Artem, ich mag deine Antwort. Ich spreche von Synchronisierung. Operationen. Hasse sie als Folge von Variablendeklarationen und Zuweisungen. –