【发布时间】:2021-06-08 07:50:15
【问题描述】:
谁能解释我为什么会这样
SyntaxError: await is only valid in async function
从下面看,因为我在 async 函数中使用 await?
(async function(){
'use strict';
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
app.post("/", (req, res) => {
await console.log('a');
res.status(200).end();
});
app.listen(config.webhook_port, () => console.log("Listening"));
})();
以上是一个简化版的 webhook 监听器,可以同时获取多个 webhook。所以在代码中使用console.log() 只是为了模拟一个会被调用的函数。所以在 app.post() 内部会有逻辑来决定如何处理每个收到的 webhook。
我之所以要使用await,是为了检查函数的返回值。
【问题讨论】:
-
async (req, res) => {? -
express 是一个 JavaScript 库。它不能改变语言语法。这根本不可能。您在本地箭头函数中使用
await,它不是异步的。 -
传递给 app.post 的函数是一个回调,这意味着它将在稍后调用。而且这个函数不是异步的。
标签: javascript node.js express ecmascript-6