【问题标题】:How to execute some statements after the execution of a function in javascript如何在javascript中执行函数后执行一些语句
【发布时间】:2021-09-26 14:33:17
【问题描述】:
const tournamentsList = document.getElementById('tournaments-name-list');
const request = new XMLHttpRequest();
request.open(
    "GET",
    "https://cricheroes.in/api/v1/tournament/get-tournaments/-1?pagesize=12&status=-1"
);
let objFromJson = "";
request.onreadystatechange = () => {
    if (request.readyState === 4 && request.status === 200) {
        objFromJson = JSON.parse(request.response)
        console.log(objFromJson)
        for (let i = 0; i < objFromJson.data.length; i++) {
            tournamentsList.innerHTML += ` <li class="tournaments-name">${objFromJson.data[i].name}</li>`;
        }
    }
};
request.send();

let url = "";
url = objFromJson.page.next;
console.log(url);

我希望在 onreadystatechange 事件的回调函数执行后执行最后三行代码(从定义 let 变量到将其注销)。我怎样才能做到这一点?

【问题讨论】:

    标签: javascript asynchronous async-await


    【解决方案1】:

    来自readyState === 4,您的执行将继续,这意味着您现在获得了数据,您可以从那里继续您的逻辑。 您的问题可能看起来不完整。如果您尝试修改某些 href 或某些 src 属性,那么您还需要编写与您要更改的元素相对应的 setAttribute 代码。下面的代码只会给url赋值

    const tournamentsList = document.getElementById('tournaments-name-list');
    const request = new XMLHttpRequest();
    let url = "";
    request.open(
        "GET",
        "https://cricheroes.in/api/v1/tournament/get-tournaments/-1?pagesize=12&status=-1"
    );
    let objFromJson = "";
    request.onreadystatechange = () => {
        if (request.readyState === 4 && request.status === 200) {
            objFromJson = JSON.parse(request.response)
            console.log(objFromJson)
            for (let i = 0; i < objFromJson.data.length; i++) {
                tournamentsList.innerHTML += ` <li class="tournaments-name">${objFromJson.data[i].name}</li>`;
            }
            url = objFromJson.page.next
            console.log(url);
        }
    };
    request.send();
    

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2020-11-21
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2020-02-19
      相关资源
      最近更新 更多