zoukankan      html  css  js  c++  java
  • 关于promise的思考

    const a = new Promise(function(resolve,reject){
                console.log(1);
                resolve()
            });

            a.then(function(){
                console.log(2);
                return Promise.resolve("data");
            }).then(function(data){
                console.log(data)
                console.log(3);
            });
            a.then(function(){
                console.log(4);
            }).then(function(){
                console.log(8)
            });
            setTimeout(function(){
                console.log(5);
                a.then(function(){
                    console.log(6)
                });
                console.log(7)
            },2000)
            // 结果:1  2  4  8  3  5  7 6



            new Promise((resolve) =>{
                Promise.resolve(4).then(resolve)
            }).then(function(){console.log(444)})
            new Promise((resolve) => {
                resolve(4)
            }).then(function(){console.log(555)});
            //思考:promise的then, 
            /*
                当promise状态为resolved时会立即将回调函数添加到微任务队列,否则就在后面变为resolved后添加到微任务队列;
                当回调执行完毕,拿到回调的返回值,重新包装一个promise返回,当返回值为非promise对象,直接返回一个resolved状态的promise,否则new 一个promise,其resolve回调在  返回值的then里面执行;
            */
  • 相关阅读:
    3D打印技术大潮
    有用网址
    linux下scp命令详解
    使用 GDB 调试多进程程序
    linux下top命令参数解释
    Sql动态查询拼接字符串的优化
    vmstat参数详解
    freebsd破解密码
    freebsd防火墙
    freebsd无法输入汉字
  • 原文地址:https://www.cnblogs.com/iroading/p/13883343.html
Copyright © 2011-2022 走看看