jquery 从2个API获取值并比较它们[duplicate]

rsaldnfx  于 2022-12-12  发布在  jQuery
关注(0)|答案(1)|浏览(124)

此问题在此处已有答案

How do I return the response from an asynchronous call?(44个答案)
10天前关闭。
我正在试着做一个简单的程序来从GitHub API获取最新的版本,并将其与本地JSON文件进行比较。我使用jQuery来使获取信息变得更容易。如果来自API的版本与本地文件的版本不同,这个脚本应该会在控制台中打印出该版本已过期。但我一直收到程序无法读取变量的错误。我试着把CversionLversion变成全局变量,放在window下面,这样你就可以用window.cversion调用它,但是它仍然返回undefined。我以前试着声明变量,比如var Lversion;,但是同样的,undefined。有什么提示吗?
下面是主index.html文件的代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body>
    <p>Latest release: <span id="tag_name">Loading...</span></p>
    <p>Current release (the site): <span id="version">Loading...</span></p>
    <p>Is this site up to date? <span id="uptodate">Loading...</span></p>
    <script src="jquery-3.2.1.min.js"></script>
    <script>
      $.getJSON("https://api.github.com/repos/3kh0/3kh0.github.io/releases/latest", function (data) {
        window.Lversion = data.tag_name;
        document.getElementById("tag_name").innerText = Lversion;
      });
      $.getJSON("about.json", function (cur) {
        window.Cversion = cur.version;
        document.getElementById("version").innerText = Cversion;
      });
      if (window.Lversion === window.Cversion) {
        console.log("Up to date! " + window.Cversion);
        document.getElementById("uptodate").innerText = "Yes";
      } else {
        console.warn("Out of date, latest version: " + window.Lversion);
        document.getElementById("uptodate").innerText = "No";
      }
    </script>
  </body>
</html>

about.json

{
  "version": "v3-22.11.28"
}
oyjwcjzk

oyjwcjzk1#

使用常规promise或jquery示例。
警告:这是完全未经测试的代码
第一个

相关问题