JavaScript,承诺{<pending>}

时间:2020-03-22 12:42:14

标签: javascript json promise async-await fetch

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文件,这是正确的方法还是有更好的方法?

2 个答案:

答案 0 :(得分:2)

问题是您有一个异步函数返回一个Promise,但是您以非异步方式调用它。您应该做的只是在呼叫前添加一个等待:

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

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

答案 1 :(得分:0)

函数的返回仅返回另一个promise。因此,您可以像这样修改功能-

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

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

注意:您不应从异步函数返回任何内容。您应该在功能内完成所需的操作

相关问题