在我最初在整个 typescript/node 应用程序中使用 throw 和 catch 后,我偶然发现了 neverthrow(https://www.npmjs.com/package/neverthrow)。
我写了第一个更大的应用程序和打字稿,才意识到缺少将函数标记为抛出的能力实际上是一个多么大的问题。
neverthrow 或其他基于任一解决方案似乎都很好。对于我的非异步函数,我已经将所有内容更改为永不抛出。
我真的不明白为什么我应该费心包装所有异步函数以返回 ResultAsync 。任何异步函数都被标记为可能本质上抛出错误(因为它们返回 Promise),还是我错了?我是否遗漏了任何一点,我确实应该更改所有异步函数以使用 ResultAsync?