与异步 JavaScript 代码斗争

第三鬼手

我试图让这个函数异步调用 API 并返回响应的 JSON。但是,在 API 调用返回并填充 之前,该函数不返回任何内容res

我对在这个用例中正确使用异步 JavaScript 感到困惑。

根据我的理解,一旦async在函数中声明,代码就会在遇到 an 时暂停,await直到await返回一个 promise。但显然情况并非如此。我错过了什么?

        let queryApi = async (query) => {
            const url = "http://localhost:3000/test";
            const response = await fetch(url)

            const res = await response.json();
            return res;
        }

谢谢朋友!

快速VO

是的,这就是 Promise 的工作方式。您必须从异步设置或顶级模块调用异步代码。因此,假设您有以下代码(已调整)。

let queryApi = async (query) => {
    const response = await fetch(query);
    const res = await response.json();
    return res;
}

你可以这样称呼它:

let result = await queryApi('https://www.example.com');
console.log(result);

它必须在异步函数内或在<script type='module'></script>.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章