javascript - 如何避免 Superagent 响应解析异步功能
问题描述
我有一个带有请求(超级代理)的异步函数。每次请求响应返回时,整个函数都会立即解决。我怎样才能避免这种行为?:/
getToken: async () => {
await request
.post('https://tokenAdress')
.field('client_id', process.env.CLIENT_ID)
.field('client_secret', process.env.CLIENT_SECRET)
.field('grant_type', 'client_credentials')
.then( (response) => {
// do some stuff with response
return resultOfStuffDone;
}).catch( err => {
throw new Error(errorMessages.couldNotGetToken);
})
}
和 ...
async () => {
let bla = await ApiEndpoints.getToken();
console.log(bla); // undefined
}
如果有人可以提供帮助将不胜感激。
解决方案
getToken: async () => {
let response = await request
.post('https://tokenAdress')
.field('client_id', process.env.CLIENT_ID)
.field('client_secret', process.env.CLIENT_SECRET)
.field('grant_type', 'client_credentials')
.catch( err => {
throw new Error(errorMessages.couldNotGetToken);
})
if(response !== undefined){
//do something
return resultOfStuffDone
}
}
当您使用 await 时,可以将值分配给变量而不是使用 then。
推荐阅读
- python - 当我输入我想要的字母时,为什么我的 WHILE LOOP 没有停止?
- visual-studio-app-center - Visual Studio AppCenter 是否处理向用户推送更新?
- javascript - 如何在初始页面加载时将状态从一个 useEffect 传递到另一个 useEffect?
- powershell - 如何更改默认路径 Powershell Remote
- python - 使用 Python 在二分法中添加解决方案
- python - 如何在flask python中同时在1个装饰器下返回不同的结果
- php - Doctrine ORM ManyToMany 使用条件按对象查询
- java - 嵌套类字段的杰克逊自定义值
- matlab - 在matlab中对单元格数组中的单元格使用逻辑索引
- sql - 如何在 SQL 中使用 JOIN 从另一个表中计数用户?