Javascript 为什么要将异步函数与wait一起使用,而不仅仅是函数?

Javascript 为什么要将异步函数与wait一起使用,而不仅仅是函数?,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,请原谅,我正在尝试使用Node学习Javascript,但我无法理解为什么这段代码需要一个异步函数。我认为异步函数应该被“触发”,然后忘记在后台执行某些操作,并在以后返回结果 因此,在下面的代码(Express router)中,在回调函数中使用async/await而不仅仅将其作为普通函数(删除async和await代码)的目的是什么 对于注释:“await运算符用于等待承诺。它只能在async函数中使用。”(async/await只是Promise的语法糖。wait之后的任何内容都将位于Pr

请原谅,我正在尝试使用Node学习Javascript,但我无法理解为什么这段代码需要一个
异步函数
。我认为异步函数应该被“触发”,然后忘记在后台执行某些操作,并在以后返回结果

因此,在下面的代码(Express router)中,在回调函数中使用async/await而不仅仅将其作为普通函数(删除
async
await
代码)的目的是什么


对于注释:“
await
运算符用于等待承诺。它只能在
async
函数中使用。”(
async
/
await
只是
Promise
的语法糖。
wait
之后的任何内容都将位于
Promise
.then()
处理程序中。如果没有
try
/
catch
它就像
api.getHomepageFeed()。然后(feed=>res.json(feed))
那么如果我做了
router.get('/homepage',function(req,res){let HomepageFeed=api.getHomepageFeed()res.json(HomepageFeed)})
它可能不返回任何内容,因为
api.HomepageFeed()
res.json(HomepageFeed)
发回时仍在获取数据?这是正确的理解吗?@volumeone是的。显然,您的
api.HomepageFeed()
函数返回一个承诺,您希望等待该承诺并将其结果作为响应发送。
router.get('/homepage', async function (req, res)  {  // why async here?
    let HomepageFeed;
    try {
        HomepageFeed = await api.getHomepageFeed();   // if you're await-ing here?
    } catch (error) {
        if (error.code === 404) {
            return res.status(404).send('404 | Page Not Found');
        }
        return res.status(500).send('500 | Internal Server Error');
    }
    res.json(HomepageFeed);
});