繁体   English   中英

将异步等待与 axios 一起使用

[英]Using async await with axios

我有一个 function 调用 axios 并返回它:

const makeRequest = () => {
    return axios.get('/data');
}

const printResponse = () => {
    makeRequest()
    .then((response) => {
        console.log(response)
    })
    .catch((error) => {
        console.log(error)
    })
}

我正在尝试使用 async await 来改善这一点并避免使用“then”。

const makeRequest = async () => {
    return await axios.get('/data');
}

const printResponse = () => {
    try {
        const response = makeRequest();
        console.log(response)
    } catch(error) {
        console.log(error)
    }
}

然而,尽管使用awaitmakeRequest仍然返回 promise,所以无论如何我必须在我的printResponse function 中使用then 我没有正确使用它吗?

“然而,尽管使用awaitmakeRequest仍然返回一个承诺”

是的,当然可以。 async/await只是使用 Promises 的语法糖。 特别是,任何标记为async的 function 将返回 Promise - 这是设计使然。

如果你不喜欢使用.then ,你可以很容易地使用async/await来使用这个 promise:

const printResponse = async () => {
    try {
        const response = await makeRequest();
        console.log(response)
    } catch(error) {
        console.log(error)
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM