Node.js 为什么我需要使用async关键字调用每个函数,以便在模块化代码中调用API

Node.js 为什么我需要使用async关键字调用每个函数,以便在模块化代码中调用API,node.js,asynchronous,async-await,Node.js,Asynchronous,Async Await,我刚刚开始使用async和await,并尝试将所有回调语法转换为async/await样式 有一件事我不明白,为什么每次我都需要在函数前面加上async关键字 以下是一个例子: APIQuery.js MobileAPI.js MobileService.js MobileController.js 同样,我必须使用async和wait组合来返回响应 所以我的问题是,有没有一种方法可以避免在任何地方使用它。在APIQuery.js中调用async await是不够的?如果要使用运算符,必须在函数

我刚刚开始使用async和await,并尝试将所有回调语法转换为async/await样式

有一件事我不明白,为什么每次我都需要在函数前面加上async关键字

以下是一个例子:

APIQuery.js MobileAPI.js MobileService.js MobileController.js 同样,我必须使用async和wait组合来返回响应

所以我的问题是,有没有一种方法可以避免在任何地方使用它。在APIQuery.js中调用async await是不够的?

如果要使用运算符,必须在函数声明之前使用
async
关键字:

wait操作符用于等待承诺。它只能在异步函数中使用

如果您不想到处使用
async
,可以继续使用回调或承诺(
then
catch
,等等)

所以我的问题是,有没有一种方法可以避免在任何地方使用它

你挡不住。时期一旦阻止,服务器将对所有请求完全无响应,直到解除阻止为止。因此,您的代码必须是异步的


回调是一种非常有效的异步形式,但是
async
/
await
更易于使用、理解和维护。

async/await它只是一种编写更少代码的语法。如果您不使用async,那么linter/compiler将在等待键处出错。
makeRequest: async(options) => {
 try {
  var response = await(request(options1))
 }
 catch(err){
  console.log("Some error occurred");
  response = undefined;
 }
return response;
}
getMobileData: async modal => {
 var options = {method: 'GET', json: true,uri: 'https://example.com/mobile/'+modal}
 var response = await APIQuery.makeRequest(options);
}
getMobileDataService: async modal => {
 var response = await MobileAPI.getMobileData(modal);
}