我刚开始使用异步并等待并尝试将我的所有回调语法转换为async / await样式。
我无法理解的一件事是,为什么我每次都需要使用async关键字为我的函数添加前缀。
以下是示例:
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);
}
同样,我必须使用async和await组合来返回响应。
所以我的问题是,有没有办法摆脱到处使用它。在APIQuery.js中调用异步等待是不够的?
答案 0 :(得分:1)
如果您想使用await
运算符,则必须在函数声明之前使用async
关键字:
await运算符用于等待Promise。它只能在异步函数中使用。
如果您不想在任何地方使用async
,可以继续使用回调或承诺(then
,catch
等)。
答案 1 :(得分:0)
所以我的问题是,有没有办法摆脱在任何地方使用它。
你无法阻止。期。一旦阻止,您的服务器就会对所有请求完全没有响应,直到它被解除阻止。因此,您的代码必须是异步的。
回调是一种完全有效的异步形式,但async
/ await
更易于使用,理解和维护。