gpt4 book ai didi

javascript - 将异步函数传递给 Node.js Express.js 路由器

转载 作者:数据小太阳 更新时间:2023-10-29 04:30:45 25 4
gpt4 key购买 nike

这似乎是一个简单的 google,但我似乎找不到答案...

能否将 ES6 ES7 异步函数传递给 Express 路由器?

例子:

var express = require('express');
var app = express();

app.get('/', async function(req, res){
// some await stuff
res.send('hello world');
});

如果没有,您能否为我指出正确的方向,说明如何处理这个 ES7 风格的问题?还是我只需要使用 promise ?

谢谢!

最佳答案

可能是因为 async/awaitES7 而不是 ES6 功能,您没有找到结果,它在 node >= 7.6 中可用。

您的代码将在 Node 中运行。我已经测试了以下代码

var express = require('express');
var app = express();

async function wait (ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms)
});
}

app.get('/', async function(req, res){
console.log('before wait', new Date());
await wait(5 * 1000);
console.log('after wait', new Date())
res.send('hello world');
});

app.listen(3000, err => console.log(err ? "Error listening" : "Listening"))

瞧瞧

MacJamal:messialltimegoals dev$ node test.js 
Listening undefined
before wait 2017-06-28T22:32:34.829Z
after wait 2017-06-28T22:32:39.852Z
^C

基本上你明白了,你必须 async 函数才能 await 在其代码中的 promise 。这在 Node LTS v6 中不受支持,因此可以使用 babel 来转换代码。希望这会有所帮助。

关于javascript - 将异步函数传递给 Node.js Express.js 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813401/

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