簡體   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