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