首页 > 解决方案 > 如何避免 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 

}

如果有人可以提供帮助将不胜感激。

标签: javascriptnode.jspromiseasync-awaitsuperagent

解决方案


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。


推荐阅读