繁体   English   中英

JavaScript,承诺{<pending> }

[英]JavaScript, Promise {<pending>}

async function db(path){
  const res = await fetch('data.json');
  const data = await res.json();
  return data[path];
}

console.log(db("name"));

我如何修复 Promise {pending} 我试图从我的代码中的任何位置全局访问我的数据库 json 文件是正确的方法还是有更好的方法?

问题是您有一个返回承诺的异步函数,但您以非异步方式调用它。 你应该做的是在你打电话之前添加一个等待:

async function db(path){
  const res = await fetch('data.json');
  const data = await res.json();
  return data[path];
}

console.log(await db("name"));

函数的返回只是返回另一个承诺。 所以你可以像这样修改你的函数 -

async function db(){
  const res = await fetch('data.json');
  const data = await res.json();
  return data;
}

db().then(data => console.log(data['name']);

注意:您不应从异步函数返回任何内容。 你应该在函数内做你想做的事

暂无
暂无

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

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