promise基本使用

94 阅读1分钟
让sleep 的功能与setTimeout一样,5000毫秒之后再执行后续操作

定时器是异步操作,但是要求在5000毫秒之后执行代码,由此可知需要使用promise
        function sleep(time){
            // 请写出你的代码
            
            //声明变量
            const p = new Promise((resolve,reject)=>{
                setTimeout(()=>{
                    resolve()
                },time)
            })
            return p  //成功返回p 为resolve,继续执行then()
        }

        sleep(5000).then(()=>{
            console.log("后续操作")
        })
        console.log(2);
    计算最后打印的值
     function increment(value) {
         console("value+1="+value+1)  // value+1= 2
         return value + 1;
     }
     function doubleUp(value) {  //此时value = value+1  为2
         return value * 2;
     }
     function output(value) {
         console.log(value);// => (1 + 1) * 2 //4
     }
        var p = Promise.resolve(1);
     //1.p 返回值是promise对象,而 p 的promise 的状态是resolve,成功返回值 1
        p.then(increment)
     // 此时 p 状态为resolve,value等于 1,执行increment(1),函数体计算后返回值为2
       .then(doubleUp)
     //p.then(increment)状态为resolve,继续执行函数 doubleUp(2) ,计算return返回值为 4
       .then(output)
     //同样then(doubleUp)的状态为resolve,执行 output(4) ,最终打印为4