1

Promise(承诺)

//用来解决异步的一些问题
    let p = new Promise(function(resolve,refused){
        console.log("abc");
        //resolve();
        setTimeout(function(){
            resolve();
        },3000); 
        console.log("123");
    });
    //console.log("123");不会等着定时器里的执行后执行,而是直接就执行了。

    p.then(function(){
        console.log("def");
    });

    function sleep(times){
        return new Promise(function(resolve,refused){
            setTimeout(function(){
                resolve();
            },times);
        });
    }
            
    let pr = new Promise(function(resolve,refused){
        setTimeout(function(){
            resolve();
        },1000);
    });


    pr.then(function(){
        console.log(1);
        return sleep(2000);
    }).then(function(){
        console.log(2);
        return sleep(3000);
    }).then(function(){
        console.log(3);
        return sleep(4000);
    }).then(function(){
        console.log(4);
    });

    let p3 = new Promise(function(resolve,refused){
        resolve();
        refused("失败了");
    });
    p3.then(function(){
        console.log("edf");
    }).catch(function(e){
        console.log(e);
    });
            
注释:1.Promise(承诺)的状态一共有三种:挂起状态,成功状态,失败状态。
      2.then:只有在成功时才会执行。
      3.catch:只有在失败时才会执行。

songze
211 声望13 粉丝

该来的总会来,该走的不挽留!