如何导出async / await方法

时间:2017-04-28 18:53:19

标签: javascript asynchronous async-await

由于Async始终返回promise,我们必须解析它以获取值。我需要导出它的值(返回的对象),以便我们可以在另一个模块中使用它。

export const getClient = async () => {

  return await HttpService.getValueFromSettings('durl').then((response) => {
    if(isValidResponse(response)) {
        endpoint = response.data;
        export const client = createClient(response.data);
        //This is where getting error that we can not export in side the function
      }
    }
  })
}

我需要在另一个模块中使用客户端。

我试图在调用之前声明并初始化客户端对象,但是没有工作:

export let client = null;
export const getClient = async () => {
 return await HttpService.getValueFromSettings('durl').then((response) => {
    if(isValidResponse(response)) {
        endpoint = response.data;
        client = createClient(response.data);
        return client;
      }
    }
  })
}

1 个答案:

答案 0 :(得分:4)

我很确定你不能做你想做的事,至少不能直接做。

相反,您应该只导出getClient()函数本身,并在需要客户端时调用它。

import { getClient } from './myfile';

getClient().then(client => { someOtherFunction(client); });

importexport是同步的,因此您无法将它们与异步函数混合使用。

第二个示例的问题是您设置了client = null。稍后将其设置为对象时,您将该变量设置为对象,但在导出时导出client