javascript - XMLHttpRequest 同步或异步

标签 javascript

在我的 JS 中,我向 bit.ly api 发送一个 get 请求以缩短 URL。问题是我需要返回 URL 以在代码中使用。

最好使用同步请求吗?事实上,使用 bit.ly 的 XHR 请求之后的任何代码都会失败,因为响应尚未返回短 URL。

bitlyXHR.onreadystatechange = function() {
    if (bitlyXHR.readyState == 4) {
        if (bitlyXHR.status == 200) {
            var obj = JSON.parse(bitlyXHR.responseText);
            // Do something
        }
    }
};

bitlyXHR.open("GET", "http://api.bitly.com/v3/shorten?login=&apiKey=&longUrl=" + longURL + "&format=json");
bitlyXHR.send();

// Some code here that uses the short URL

最佳答案

你可以这样做:

function doSomething(obj) {
    // this does something with the result.
}

bitlyXHR.onreadystatechange = function() {
    if (bitlyXHR.readyState == 4) {
        if (bitlyXHR.status == 200) {
           var obj = JSON.parse(bitlyXHR.responseText);
           doSomething(obj); 
        }
    }
};

bitlyXHR.open("GET", "http://api.bitly.com/v3/shorten?login=&apiKey=&longUrl=" + longURL + "&format=json");
bitlyXHR.send();

关于javascript - XMLHttpRequest 同步或异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212775/

相关文章:

javascript - iPad 上 HTML5 应用程序的声音延迟

javascript - 使用 geonames API 和 javascript 检查邮政编码是否重复

javascript - javascript 事件处理发生在程序流内部还是外部?

javascript - 如何使用 js 作为悬停检测器创建过渡效果?

javascript - 对象数组在 .push() 之后不显示内容

javascript - javascript 正则表达式不匹配少于 3 个字符的问题

javascript - 如何在没有 NodeJs 的情况下保持登录 Gmail api?

javascript - 在 Canvas 中清除和填充矩形与背景颜色之间的区别

javascript - 如何用 jest.fn() 模拟调度

javascript - 如何为 IE11 正确使用 babel/corejs3/webpack?