だから私はTypeScriptでAngular 2を学んでいます。
私は、サービスがオブジェクトを正常に取得した場合にPromiseを返し、何かが発生した場合にエラーを返すモックサービスを作成するポイントに到達しています。
次のコードを試してみましたが、TypeScriptの書き込み構文ではないようです。
コードを更新しました:
saveMyClass(updatedMyClass: MyClass){
//saving MyClass using http service
//return the saved MyClass or error
var savedMyClass : MyClass = someLogicThatReturnsTheSavedObject(updatedMyClass);
if(isSomeCondition)
return Promise.reject(new Error('No reason but to reject'));
else
return new Promise<MyClass>(resolve => {setTimeout( ()=>resolve(savedMyClass),1500 )} );
}
しかし、驚いたことに、TypeScriptは「戻り式の間に最良の共通型は存在しない」と不満を漏らしました。
適切なコードは何ですか?そのため、適切なMyClassが返された場合にコンポーネントを使用して消費し、サービスからエラーが存在する場合はエラーを反映できるようにします。
ありがとう
関数本体全体をPromise
コンストラクター内に埋め込むことをお勧めします。エラーが発生した場合、拒否に変換されます。この場合、問題も解決します。
saveMyClass(updatedMyClass: MyClass) {
return new Promise<Package>((resolve, reject) => {
//saving MyClass using http service
//return the saved MyClass or error
var savedPackage : Package = updatedPackage;
if (isSomeCondition) {
throw new Error('No reason but to reject');
}
setTimeout( () => {
resolve(savedPackage);
}, 1500);
});
}