Node.js在另一个异步函数中嵌入异步函数会产生错误

时间:2019-12-16 11:45:12

标签: javascript node.js asynchronous async-await

我试图在另一个异步函数中嵌入一个异步函数。为什么会出现错误以及如何解决?

这是我的设置:

helper.js

const express = require('express');

async function loginRoute (req, res) => {

    ...

}

module.exports = {
  login: async (req, res, next) => {

    try {
      async loginRoute(req, res);
    } catch (err) {
      res.status(500).end();
    }

    next();

  }

}

控制台错误:

async function loginRoute (req, res) => {
                                     ^^
SyntaxError: Unexpected token =>
    at ...
    at ..

还是没有必要做两次?

4 个答案:

答案 0 :(得分:2)

尝试使用以下语法:

const loginRoute = async (req, res) => {
  // do something
}

然后

await loginRoute(req, res)

答案 1 :(得分:1)

使用两者之一,就不能将箭头函数与函数声明结合起来

async function loginRoute(req, res)
{

    //function declaration

}

let loginRoute = async (req, res) =>
{

    ... //function expression with arrow syntax

}

答案 2 :(得分:1)

要使用箭头功能,请编写如下代码

const loginRoute = async (req, res) => {

   ...

};

答案 3 :(得分:0)

您不能这样定义。做

async function loginRoute (req, res) {

    ...

}

const loginRoute = async (req, res) => {}

调用函数时,请执行await loginRoute(req, res);