我有这种形式的异步功能
let test = async () => {}
完成此功能后,我将使用test.then().catch()
部分。
我希望通过传递post参数从路由器内部调用此功能。这可能吗?
我遇到了这个问题: Right way to call async function inside express js route
但是在该代码段中,他没有提到.tehn()。catch()到哪里。 另外,我是否可以像现在一样在异步函数中传递参数(匿名函数)。
答案 0 :(得分:1)
当然可以。我不确定您尝试了什么,但这很简单:
router.post("/something", (req, res) => {
// you can pass any arguments from the request here to your async function
test(req.body).then(result => {
res.send(result);
}).catch(err => {
console.log(err);
res.status(500).send("Error");
})
});
此外,我是否可以像现在一样在异步函数中传递参数(匿名函数)。
是的,可以。
let test = async (arg1) => {
// since this is async, you would have some asynchronous operations in here
console.log(arg1);
return arg1;
};
仅供参考,另一个问题是使用await
,因此通常将.catch()
与try/catch
一起使用,而不是await
。由于您仅询问有关调用单个异步函数的信息,因此您最好使用.then()
和.catch()
,因为async/await
并没有真正使事情变得更短或更简单。