Javascript异步功能控制台记录返回的数据

Javascript异步功能控制台记录返回的数据,第1张

Javascript异步功能控制台记录返回的数据

两个问题:

  1. 设置

    async
    函数创建的promise的分辨率值,您必须使用函数本身的
    return
    语句
    async
    。您的代码
    return
    getJSON
    回调
    async
    函数中有一个(将被忽略),而不是函数本身。

  2. 获得功能 的分辨率值

    async
    ,您必须先使用
    await
    它(或以更旧的方式通过
    then
    等使用其诺言)。

对于#1,您可以返回

await
ing 的结果
getJSON

async function getData() {    try {        return await $.getJSON('./data.json').promise();    }    catch (error) {        console.log("error" + error);    }    finally {        console.log('done');    }}

对于#2,您将需要其中一个

await
函数(这又需要在
async
函数内部):

console.log(await getData());

…或通过

then
以下方式兑现其承诺:

getData().then(data => {    console.log(data);});

旁注:您的

getData
隐藏错误,将其转换为带有值的分辨率,
undefined
通常不是一个好主意。相反,请确保它传播错误:

catch (error) {    console.log("error" + error);    throw error;}

然后,自然地,请确保使用

getData
该错误的任何事物都可以处理或传播该错误,并确保某个地方 可以
处理该错误(否则,您将收到“未处理的拒绝”错误)。


重新发表您的评论

我如何从函数外部的日志中访问json文件中的“内容”?

的异步结果/解析度值

getData
是JSON定义的对象(不再是JSON,它已被解析)。因此,您可以使用
.stuff
它,例如:

// In an `async` functionconsole.log((await getData()).stuff);// Or using `then`:getData().then(data => {    console.log(data.stuff);});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5622967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存