Javascript API以承诺方式返回数据,但可以';不能转换为字符串

Javascript API以承诺方式返回数据,但可以';不能转换为字符串,javascript,json,api,Javascript,Json,Api,我正在尝试获取外部API的项,尽管结果显示在控制台中,但在尝试提取数据并将其解释为HTML输出时遇到了一些问题 例如,我创建了一个名为makeRequest的const,它从API中提取数据。当我试图将数据转换为字符串或使用innerHTML提取到类中时,我得到的是“对象承诺”或未定义 我被难住了。有什么想法吗?我肯定我错过了一些明显的东西,但我没有练习JS很长时间 编辑:我能够将数据返回到控制台日志,但我无法将该响应转换为字符串并解析为HTML 这不是承诺的工作方式。then()和catch

我正在尝试获取外部API的项,尽管结果显示在控制台中,但在尝试提取数据并将其解释为HTML输出时遇到了一些问题

例如,我创建了一个名为makeRequest的const,它从API中提取数据。当我试图将数据转换为字符串或使用innerHTML提取到类中时,我得到的是“对象承诺”或未定义

我被难住了。有什么想法吗?我肯定我错过了一些明显的东西,但我没有练习JS很长时间

编辑:我能够将数据返回到控制台日志,但我无法将该响应转换为字符串并解析为HTML


这不是承诺的工作方式。
then()
catch()
回调中的位在其余代码之后执行。因此,您的
makeRequest
变量将是一个Promise对象,您不能将其转换为字符串。这不是真正的数据,而是在未来某个时候交付数据的承诺

您要对承诺的数据执行的任何操作都必须在回调中完成,如下所示:

    //Request is defined and
const request = options => {
  return fetch(options)
    .then((response) => {
        //this gets passed on to other .then() calls
        return response.json();
    })
    .catch(error => console.error(error));
};


const makeRequest = request('https://api.punkapi.com/v2/beers?abv_gt=6')
   .then(data => {
       //this will get the response.json() result from the fetch callback above
       var res = data.toString();
       document.getElementById("beers").innerHTML = res;
   });
    //Request is defined and
const request = options => {
  return fetch(options)
    .then((response) => {
        //this gets passed on to other .then() calls
        return response.json();
    })
    .catch(error => console.error(error));
};


const makeRequest = request('https://api.punkapi.com/v2/beers?abv_gt=6')
   .then(data => {
       //this will get the response.json() result from the fetch callback above
       var res = data.toString();
       document.getElementById("beers").innerHTML = res;
   });