获取函数返回Promise <pending>

C. *_*sti 2 javascript json fetch

所以我的代码在这里返回一个Promise,因为我使用then语法,我不知道为什么会发生这种情况: - ??

fetch('someurltoAJsonFile.json')
  .then(function(response) {
    console.log(response.json());});
Run Code Online (Sandbox Code Playgroud)

Kam*_*ski 11

作为then参数给出的函数将异步执行(将来某个时候当您的服务器返回响应时),但then它本身根据其定义立即(以同步方式)返回 Promise

如果您希望代码看起来不那么嵌套(更多是同步代码),您可以使用 await 但您必须使用 async 函数使整个代码不透明

async function load() 
{
  let response = await fetch('someurltoAJsonFile.json');
  let data = await response.json();
  console.log(data);
}
Run Code Online (Sandbox Code Playgroud)

  • 仍承诺待定 (2认同)

Krz*_*ski 7

node-fetch库中的response.json()也返回一个promise,而不是尝试

fetch('someurltoAJsonFile.json')
  .then(response => response.json())
  .then(data => {
    console.log(data)
  });
Run Code Online (Sandbox Code Playgroud)

你可以在这里查看更多相关细节

编辑:

似乎返回的响应不在有效的json中,所以为了完整起见,这里是一个文本代码

fetch('someurltoAJsonFile.json')
  .then(response => response.text())
  .then(data => {
    console.log(data)
  });
Run Code Online (Sandbox Code Playgroud)