Promise应用

2018-10-17  本文已影响0人  自律财富自由
1、使用Promise封装Ajax请求
// 封装一个get请求的方法
function getJSON(url) {
    return new Promise(function(resolve, reject) {
        var XHR = new XMLHttpRequest();
        XHR.open('GET', url, true);
        XHR.send();

        XHR.onreadystatechange = function() {
            if (XHR.readyState == 4) {
                if (XHR.status == 200) {
                    try {
                        var response = JSON.parse(XHR.responseText);
                        resolve(response);
                    } catch (e) {
                        reject(e);
                    }
                } else {
                    reject(new Error(XHR.statusText));
                }
            }
        }
    })
}

getJSON(url).then(resp => console.log(resp));

作者:这波能反杀
链接:https://www.jianshu.com/p/fe5f173276bd
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

2、使用Promise加载图片
let preloadImg = (src) => {
    return new Promise(function(resolve,reject){
        let img = new Image();
        img.onload = function () {
            resolve(img)
        }
        img.onerror = function () {
            reject(new Error('出错了'))
        }
        img.src = src
    })
}
上一篇 下一篇

猜你喜欢

热点阅读