私はバックエンドからデータを取り出すTypeScriptで次のサービスを持っています。正しいプロミスが成功とエラーのコールバックを処理する
関数getAllPropertiesByAppIdのパラメータとして、私は成功とエラーのコールバックを持っています。
export class PropertyService implements IPropertyService {
/**
* Get all properties
*/
public getAllPropertiesByAppId(appliactionId: string, success: (properties: Array<IPropertyItem>) => void, error: (error: any) => void): void {
//set up createRequestStr and requestInit
fetch(createRequestStr, requestInit)
.then<IPropertyItem[]>((response: Response) => {
if (response.status===401) {
throw new UnAuthorizedException();
}
return response.json<IPropertyItem[]>();
})
.then((response: IPropertyItem[]) => {
success(response);
})
.catch((reason: any) => {
//error handling
}
});
}
その後、私は自分の行動の作成者にこのサービスを使用しています:
initProperties: (appId: string): ActionCreator => (dispatch: Redux.Dispatch, getState:() => IApplicationState) => {
"use strict";
console.log("ShoppingCart initProperties - Request all Property");
var service: IPropertyService = kernel.get<IPropertyService>("IPropertyService");
service.getAllPropertiesByAppId(appId, (properties: Array<IPropertyItem>): void => {
dispatch(new ShoppingCartPropertiesLoaded(appId, properties));
dispatch(new ShoppingCartPropertiesDone(appId, System.Init.Done));
}, (error: any): void => {
console.log("ShoppingCart initProperties - error:" + error);
dispatch(new ShoppingCartPropertiesDone(appId, System.Init.Error));
});
}
をだから私はinitPropertiesアクションの作成者を呼び出すときには、getAllPropertiesByAppIdを呼び出し、すべてがうまくているとき、私はShoppingCartPropertiesLoadedアクションとShoppingCartPropertiesDoneを派遣します。
私は保存するために接続されている単純なコンポーネントを持っており、renderメソッドは
export default class TotalPriceList extends React.Component<ITotalPriceListProps, void> {
public render(): JSX.Element {
throw 'SomeError';
}
}
未処理の例外は、フェッチのcatch文で終わるを実行しているときに、コンポーネントがエラーをスローします。
私は正常に終了する方法を忘れてしまったのですが、catch/catchステートメントでコールバックからcatch例外を避けるために、ステートメント以外の関数/コールバックを呼び出す方法を教えてください。
あなたの助けのおかげで非常に多くの
完璧を使用すると思います!ありがとうBergi! –