如何避免 Superagent 响应解析异步函数
How to avoid Superagent response resolving the async function
我有一个带有请求(超级代理)的异步函数。每次请求的响应返回时,整个功能都会立即解决。我怎样才能避免这种行为? :/
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。
我有一个带有请求(超级代理)的异步函数。每次请求的响应返回时,整个功能都会立即解决。我怎样才能避免这种行为? :/
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。