我正在尝试使用accepted answer of this question中列出的window.onerror
添加全局错误记录。
当我在我的一个组件生命周期方法和同步redux操作中抛出错误时,我有它工作。但是,异步thunk
操作引发的错误不会被我的处理程序捕获。
这是预期的吗?有什么方法可以在全局处理程序中捕获这些错误吗?
export const syncReduxAction = (): Action => {
throw 'This will trigger window.onerror';
};
export const asyncReduxAction = (): ThunkAction<Promise<T>, GlobalState, void> =>
async (dispatch, getState) => {
throw 'This will NOT trigger window.onerror';
}
According to this question,看起来异步错误实际上不是由window.onerror
事件处理程序处理的。
但即使我抓住错误并重新抛出它:
this.props.dispatch(asyncReduxAction())
.catch((e)=> {
throw new Error(e);
}
);
它不会触发事件!