导出ES6中async / await函数返回的值

时间:2018-01-19 19:37:40

标签: javascript asynchronous ecmascript-6 fetch

是否可以从ES6类导出await函数的值?例如,我有一个名为getDetails的函数的类,它看起来像这样

class Config {
    static async getDetails() {
        let response = await fetch('url/where/details/are')
        let data = await response.json()
        return data;
    }
}

export { Config }

当我将此类导入另一个文件并调用User.getDetails()时,返回的是Promise {<pending>}。有没有办法让堆栈首先等待API的响应?

2 个答案:

答案 0 :(得分:2)

为什么不在父文件中使用await呢?

// your async function

const res = await User.getDetails()

// here you have res

或者,您可以使用.then

User.getDetails()
.then(res => {
    // use res here
})

答案 1 :(得分:0)

致电User.getDetails()时,您需要使用.then()或使用await。请记住 - 您只能在await函数中使用async,因此您可以执行

async myFunction() {
    const data = await User.getDetails();  
}

myFunction() {
    const data = User.getDetails().then(res => {})
}