gpt4 book ai didi

node.js - 防止 "Unhandled promise rejection"错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:28 25 4
gpt4 key购买 nike

在我的服务器应用程序中,当用户没有端点权限时,我想返回一个“禁止”值。

为此,我创建了一个被拒绝的重用 promise :

export const forbidden = Promise.reject(new Error('FORBIDDEN'))

然后在应用的其他地方:

import {forbidden} from './utils'

...

resolve: (root, {post}, {db, isCollab}) => {
if (!isCollab) return forbidden
return db.posts.set(post)
},

但是,当我启动我的应用程序时,我收到了警告

(node:71620) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: FORBIDDEN
(node:71620) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

我如何告诉 Node 这个 Promise 可以不处理?

最佳答案

I create a rejected promise for reuse

好吧,不,创建一个函数以供重用可能会容易得多:

export function forbidden() { return Promise.reject(new Error('FORBIDDEN')); }

这也会在您每次调用它时为您提供适当的错误堆栈跟踪。

How can I tell Node that this Promise is fine to be unhandled?

什么都不做就处理它:

export const forbidden = Promise.reject(new Error('FORBIDDEN'));
forbidden.catch(err => { /* ignore */ }); // mark error as handled

(并且不要忘记包括关于这个看似无操作声明的目的的评论)。

关于node.js - 防止 "Unhandled promise rejection"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45895215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com