Promise

作者: 小学生的博客 | 来源:发表于2017-11-30 15:55 被阅读6次

对Promise一直是迷迷糊糊状态,今天记录总结下

  • Promise 一个对象,用来传递异步操作消息。

demo

function getURL(URL) {
        return new Promise( (resolve, reject)=> {
            var req = new XMLHttpRequest();
            req.open('GET', URL, true);
            req.onload = function () {
                if (req.status === 200) {
                    resolve(req.responseText);
                } else {
                    reject(new Error(req.statusText));
                }
            };
            req.onerror = function () {
                reject(new Error(req.statusText));
            };
            req.send();
        });
    }

    var URL = "http://httpbin.org/get";
    getURL(URL).then((value) => {
        console.log(value);
    }).catch((error) => {
        console.error(error);
    });

Promise.resolve

    //写法一
    let promise = new Promise(reslove => reslove(42))
    promise.then(res => {
        console.log(res)
    })
    //写法二
    Promise.resolve(42).then(res=>{
        console.log(res)
    })

Promise.reject

Promise.reject(new Error('err ')).catch((err) => {
        console.error(err)
 })
  • Promise#then 不仅仅是注册一个回调函数那么简单,它还会将回调函数的返回值进行变换,创建并返回一个promise对象。

Promise.all

  • 接收一个promise对象的数组作为参数,当这个数组里的所有promise对象全部变为resolve或 reject状态是时候,他才会去调用 .then方法

  • promise并不是一个个的顺序执行的,而是同时开始、并行执行的

Promise.race

  • Promise.race 只要有一个promise对象进入 FulFilled 或者 Rejected 状态的话,就会继续进行后面的处理。

强烈推荐
http://liubin.org/promises-book

相关文章

网友评论

      本文标题:Promise

      本文链接:https://www.haomeiwen.com/subject/mkhvbxtx.html