在没有 'await' 或 'Promise.catch' 的情况下,如何在本地捕获未处理的承诺拒绝
How can I catch an unhandled promise rejection locally without 'await' or 'Promise.catch'
const asyncThrowSampleApiFunction = async () => {
throw new Error('SOMETHING');
};
const MyComponent = (SomeApiFunction) => {
try {
SomeApiFunction();
} catch (err) {
handleMyError(err);
}
return ...;
};
const c = MyComponent(() => {
asyncThrowSampleApiFunction(); // call async function without 'await' or 'Promise.catch'
});
有没有办法在没有 Promise.catch
或 await
的情况下捕获未处理的承诺拒绝?
在React.useEffect
中,我们经常使用不带await
语句的async
函数调用。我想处理 React.useEffect
.
中可能出现的异步错误
所以我想捕获未处理的承诺拒绝,但我只能找到一种 global 方法来捕获这些拒绝类型。
(例如 window.addEventListener('unhandledrejection', ...);
)
我想自己制作ErrorBoundary
。所以我需要在本地捕获这些拒绝。
有什么办法可以抓到它们吗?
谢谢。
How can I catch an unhandled promise rejection locally without 'await' or 'Promise.catch'
您必须在某处使用 .catch()
、.then()
的第二个参数或用 try/catch
括起 await
来捕获被拒绝的承诺。这是你仅有的三个选择。
所以,从技术上讲,如果您正在寻找与 await
或 .catch()
不同的东西,您可以使用 .then()
的第二个参数 - 虽然我怀疑那不是你真正想要的被要求在这种情况下,没有其他选择。
const asyncThrowSampleApiFunction = async () => {
throw new Error('SOMETHING');
};
const MyComponent = (SomeApiFunction) => {
try {
SomeApiFunction();
} catch (err) {
handleMyError(err);
}
return ...;
};
const c = MyComponent(() => {
asyncThrowSampleApiFunction(); // call async function without 'await' or 'Promise.catch'
});
有没有办法在没有 Promise.catch
或 await
的情况下捕获未处理的承诺拒绝?
在React.useEffect
中,我们经常使用不带await
语句的async
函数调用。我想处理 React.useEffect
.
所以我想捕获未处理的承诺拒绝,但我只能找到一种 global 方法来捕获这些拒绝类型。
(例如 window.addEventListener('unhandledrejection', ...);
)
我想自己制作ErrorBoundary
。所以我需要在本地捕获这些拒绝。
有什么办法可以抓到它们吗?
谢谢。
How can I catch an unhandled promise rejection locally without 'await' or 'Promise.catch'
您必须在某处使用 .catch()
、.then()
的第二个参数或用 try/catch
括起 await
来捕获被拒绝的承诺。这是你仅有的三个选择。
所以,从技术上讲,如果您正在寻找与 await
或 .catch()
不同的东西,您可以使用 .then()
的第二个参数 - 虽然我怀疑那不是你真正想要的被要求在这种情况下,没有其他选择。