TS:約束の中でasycnメソッドを連鎖させる良い仕組みがあります。 することができます1.then(()=> ...)。catch(()=> ...)。<T>と結果<T>タイプがTypescript/Javascriptで使用できますか?
しかし、同期メソッドをチェーンしたい場合はどうすればいいですか? この質問でHow to avoid logic duplication when promisifying js methods?私はアドバイスでしたそれを行うには約束を使用しないでください。
C#では、< T>と結果< T>クラスを使用するとうれしいです。 どのメソッドでも、の結果が返されます。結果はです。メソッドOnSuccess(メソッドの結果をその中に渡す)とOnFailure(それにエラーを渡す)があります。これらのクラスのTSコードの使用に
は次のようになります。
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");
}
ので、質問があり、それがこの方法を使用しても大丈夫でしょうか?
いくつかのベストプラクティス、原則に矛盾していませんか?
チェーン内に1つの非同期コールが存在することは100%自信がある限り、問題ありません。それが起こると、すべてを約束に変えなければなりません。 – artem
ありがとう、アルテム、私はあなたの答えが好きです。私は同期について話している。オペレーション。変数宣言と割り当てのシーケンスとしてそれらを持つことを嫌う。 –