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里面执行;
            */
  • 相关阅读:
    integer比较
    String比较
    StringBuffer的s1.capacity()是多少?
    时间复杂度
    京东面试--总结
    说下Java堆空间结构,及常用的jvm内存分析命令和工具
    linux下jmap,jstat和jstack使用
    jvm 性能调优工具之 jmap
    jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
    android小技巧:在activity中实现与绑定的fragment的回调
  • 原文地址:https://www.cnblogs.com/iroading/p/13883343.html
Copyright © 2011-2022 走看看