我可以使用fs promise API而不使用then()或 await吗?[重复]

问题描述 投票:0回答:2

我正在编写一个快递网络应用程序

我需要把post请求的正文写到磁盘中,但返回的承诺对我来说没有用。

是否需要在返回的promise中加入 await或附加函数?

import { promises as fs } from 'fs';
import express from 'express';

const app = express();

app.post('/', (req, res) => {
  fs.writeFile(`record/${req.body.name}.json`, JSON.stringify(req.body));
  res.send(`Hello World`);
});

app.listen(8080);
javascript node.js promise fs
2个回答
1
投票

不,你不必对返回的promise做任何事情,就像所有的非async函数一样,即使你忽略返回值,它也会被执行,但是有一些事情你必须要记住。

如果你不等待承诺的解析或拒绝,下面的操作,比如你的... ... res.send('Hello World'); 很可能会在异步操作完成之前被执行。这取决于你的应用程序是否有问题。

你也不能处理异步函数中可能发生的异常,如果你没有一个 catch 块,因此当遇到未处理的异常时,你的整个应用程序可能会崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.