JavaScript, Promise {<pending>} - PullRequest
       22

JavaScript, Promise {<pending>}

0 голосов
/ 22 марта 2020
async function db(path){
  const res = await fetch('data.json');
  const data = await res.json();
  return data[path];
}

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

как я могу исправить Обещание {в ожидании} Я пытаюсь получить глобальный доступ к файлу моей базы данных json из любого места в моем коде - это правильный путь или есть лучший способ?

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Проблема в том, что у вас есть асинхронная функция c, которая возвращает обещание, но вы вызываете ее не асинхронно c. Вам просто нужно добавить ожидание перед звонком:

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

console.log(await db("name"));
0 голосов
/ 22 марта 2020

Возвращение функции просто возвращает другое обещание. Таким образом, вы можете изменить свою функцию следующим образом:

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

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

Примечание: Вы не должны ничего возвращать из функции asyn c. Вы должны делать то, что вы хотите внутри функции

...