您能帮助我了解如何解决此异步代码吗?

问题描述

我是Java的新手,在尝试理解异步代码及其管理方式时遇到了严重的问题。我的主要问题(这一切都开始了)是,我试图通过http请求读取JSON对象(到quotesList),并将其存储在全局变量中以备后用。当尝试运行我的代码时,由于它是异步运行的,因此该对象在其他函数中将被视为未定义,因为定义该对象的函数到那时还没有完成。我只是真的不知道如何解决这个问题。

非常感谢您的帮助!

let requestURL = 'https://gist.githubusercontent.com/nasrulhazim/54b659e43b1035215cd0ba1d4577ee80/raw/e3c6895ce42069f0ee7e991229064f167fe8ccdc/quotes.json'
var quotesList; 
var x = 5; 

var colors = [
    "EE6D51","72EE51","E7EA27","FFA428","28FF4F","456CFC","A645FC","FC459B","FC458A","FE2842","28FED4"
]


function getQuotes() {
    let request = new XMLHttpRequest(); 
    request.open('GET',requestURL);
    request.responseType = 'json'; 
    request.send(); 

    request.onload = function() {
        quotesList = request.response; 
        if (quotesList == null) {
            alert("Something's definitely wrong here...");
        }
        console.log('quotesList');
        console.log(quotesList);
    }
}

function populate() {
    var x = Math.floor(Math.random() * Math.floor(quotesList.quotes.length)); 
    document.getElementById('quote').innerHTML = quotesList.quotes[x].quote;
    document.getElementById('author').innerHTML = quotesList.quotes[x].author;
}

$(function() {

    getQuotes()
    populate

    while(($('.container strong ').height() >= 300)) {
        $('.container strong').css('font-size',(parseInt($('.container strong').css('font-size')) - 10.5) + "px");
        $('.container h3').css('font-size',(parseInt($('.container h3').css('font-size')) - 7.5) + "px");
    }
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)