当前位置: 首页 > 知识库问答 >
问题:

应用程序运行时nodejs未处理的promise拒绝。邮递

诸经略
2023-03-14

当我的角度前端发送post请求时

order(market: string, price: string, side: string, size: string): Observable<any> {
        var payload = { market: market, order: { price: price, side: side, size: size } };
        return this.http.post<any>('http://localhost:3000' + "/orders", payload))
            .pipe(
                tap((res: any) => {
                   console.log(res);
                }),
                retry(3), // retry a failed request up to 3 times
                catchError(this.handleError) // then handle the error
            );
    }

我的nodejs服务器接收它

app.post('/orders', (req, res) => {
    console.log(req.body) 
    // more code

    setTimeout(function () {
        axios.post('https://test.com/api/orders', payload, { headers: headers })
            .then((response) => { 
                if (response.status === 201) {
                    res.sendStatus(201);                    
                } else {
                    res.sendStatus(400);  
                }           
            })
    }, 500);    
});

我添加了setTimeout,因为如果没有它,我就会得到错误:状态代码400请求失败。

因此,我可以发布订单到test.com/api/orders,但得到promise拒绝。

(节点:9220)UnhandledPromiseRejtionWarning:未处理的promise拒绝。这个错误要么是由于抛出一个没有捕获块的异步函数,要么是由于拒绝了一个没有用. cat()处理的promise。若要在未处理的promise拒绝上终止节点进程,请使用CLI标志--unhanded-rej的拒绝=严格的(参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。将来,未处理的promise拒绝将以非零退出代码终止Node.js进程。

我能在这里做些什么改进吗?

共有1个答案

邹玮
2023-03-14

尝试将函数内容移动到Try块中并捕获错误。我还建议使用async Wait关键字。

 类似资料:
  • 我想在Repl上为我的游戏实现一个基本的排行榜。它,所以我创建了一个节点。js后端。这是我在后端的配置: 但是每当我尝试发布时,我都会得到以下错误: (节点:344)未处理的PromisejectionWarning:TypeError:无法读取null的属性“push” (节点:344)UnhandledPromiseRejtionWarning:未处理的promise拒绝。这个错误要么是由于抛

  • 当我运行部署我的应用程序的命令时,我发现以下错误 (节点: 6292)UnhandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHandledPromiseRejtionWarning: UnHan

  • 为了学习角度2,我正在尝试他们的教程。 我得到这样的错误: 我在SO中浏览了不同的问题和答案,但没有发现什么是“未处理的promise拒绝”。 有人能简单地解释一下它是什么,以及<code>错误:生成cmd ENOENT</code>是什么,当它出现时,我需要检查什么才能消除这个警告吗?

  • 我得到以下错误: 这是promise代码,我看不出有什么问题,有什么想法吗? 编辑: 我添加了一个catch函数,得到了一个更好的错误: 这是索引。网间网操作系统。js代码。url很好,并为我提供了正确的json数据。我可以通过控制台日志看到这两个在中提供。但是未定义。 我仍然不确定发生了什么,为什么有问题,为什么它是未定义的。

  • 我得到这个错误- (节点:18420)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“name” (节点:18420)未处理的PromisejectionWarning:未处理的promise拒绝。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。要在未处理的promise拒绝时终止节点进程,请

  • 我一直得到“UnhandledPromiseRejectionWarning:UnhandledPromiseRejection.此错误源于在没有catch块的异步函数内部抛出,或拒绝未用.catch()处理的Promission.(拒绝ID:2)” 我已经处理了所有的承诺,但错误仍然存在