首页 > 解决方案 > Promise 中的 API 调用(TypeError:response.json 不是函数)

问题描述

为什么我不断收到 TypeError: response.json is not a function?

我对此进行了广泛的研究,但是所有响应都提到了异步等待调用,并且我对纯 Promise 语法感到好奇(顺便说一下,“新 Promise ..”语法,而不是使用 Promise.all 的语法)

 const getName0 = (username) => new Promise((resolve, reject) => {

  const url = `https://api.github.com/users/${username}`;
  const response = fetch(url);

  if (response) {
    const json = response.json();
    return resolve(json.name);

  } else {
    return reject("User does not exist!");

  }

});

getName0('rickitan').then(res => console.log(res)).catch(err => console.log(err));

标签: javascriptasynchronouspromisehttprequestresponse

解决方案


试试这个获取语法

fetch('https://api-to-call.com/endpoint').then(response => {
  if(response.ok) {
    return response.json();
  }
  throw new Error('Request failed!');
}, networkError => console.log(networkError.message)).then(jsonResponse => {
  return jsonResponse;
})


推荐阅读