小编Ian*_*rle的帖子

为什么此功能在XHR请求中有数据之前不会等待?

当我调用getCurrentConditions时,它会在requestData完成之前尝试返回数据,因此找不到data.currently.我肯定是从URL返回数据,我已经尝试添加一个等待XHR加载的超时循环,但这只是一起打破了脚本.我有点困惑为什么第二个函数没有等待this.requestData(纬度,经度); 在继续之前完成.

this.requestData = function(latitude, longitude) {
    request_url = self.API_ENDPOINT + api_key + '/' + latitude + ',' + longitude + '?units=auto';
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if(xhr.readyState==4 && xhr.status==200) {
            content = xhr.responseText;
            if(content != '' && (content)) {
                return JSON.parse(content);
            } else {
                return false;
            }
        }
    }
    xhr.open('GET', 'proxy.php?url='+request_url, true);
    xhr.send(null);
}
/**
 * Will return the current conditions
 *
 * @param float $latitude
 * @param float $longitude
 * @return \ForecastIOConditions|boolean
 */
this.getCurrentConditions …
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×1