猿问

JavaScript - 为什么我的 API 调用变量返回未定义?

我正在开发一个简单的应用程序来检查高分,目前我有 API 将其值返回到控制台,但是当我尝试与此数据交互时,它返回未定义


在下面的代码中,我使用“await highscores.getStats”调用API,但例如当我尝试console.log“highScoreData”的值时,它返回未定义。我对 JS 编程非常陌生,因此我们将不胜感激。


目前,api 返回一个 json 对象并将其值打印到控制台。这一切都工作正常。


const Hiscores = require('osrs-hiscores').default;

const hiscores = new Hiscores({

  timeout: 6000

});



async function getHighscores() {

  let namePara = document.getElementById("UsrName").value;

  let typePara;

  let validArgument = false;


  if (namePara.length <= 12 && namePara.length > 0) {

    console.log("Valid Name");

    validArgument = true;

  } else {

    console.log("Invalid Name");

    validArgument = false;

  }

  if (validArgument === true) {


    console.log(`Player Name: ${namePara}`);

    const highScoreData = await hiscores.getStats(`${namePara}`)

      .then(res => console.log(res))

      .catch(err => console.error(err));


  }

}


三国纷争
浏览 103回答 1
1回答

慕尼黑的夜晚无繁华

当您使用await语法时,您不应该使用then/catch,结果位于“highScoreData”常量中,这就是您应该记录的内容。另外,如果您想使用await 语法捕获错误,则应该使用来自其他编程语言(如Java 或PHP)的人更熟悉的try/catch 方法。try {&nbsp; const highScoreData = await hiscores.getStats(`${namePara}`);&nbsp; console.log(highScoreData);} catch (err) {&nbsp; console.error(err);}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答