• js Promise async await 学习研究


    通过Promise async await可以实现同步按照顺序执行的效果,具体如下

     function asyncFunc(num) {
            return new Promise((resolve, reject) => {  //将异步函数放到Promise中,成功时resolve,失败时reject
                setTimeout(() => {
                    resolve("timeout_" + num);  //模拟异步函数
                }, num);
            })
        }
        async function test() { //await必须要在async修饰的函数中使用
            var p1 = await asyncFunc(3000);  //asuncFunc返回的是Promise,加上await就会等待,并且返回值变成了Promise的resolve传入的值
            console.log(p1);
            var p2 = await asyncFunc(2000);  //按照顺序调用异步函数,感觉像是排队执行,总共耗时3000+2000+1000=6000毫秒
            console.log(p2);  //这些没有await的操作也是按照顺序的,await是等待的意思,它不执行完貌似就不往下走
            var p3 = await asyncFunc(1000);
            console.log(p3);
            return p1 + " + " + p2 + " + " + p3;  //异步函数能可控的按照顺序执行了,并且能以返回值的形式获取,就很爽
        }
        console.log(111);
        test().then(p => {  //async修饰的函数貌似都会返回Promise,它本身是异步的,所以要用到这个then,有点类似回调函数
            console.log(p); //这里可以获取test的返回值,如果是在aysnc修饰的函数中使用,直接await test()就可以了,但是没有的话,就只能通过then回调了
        });
        console.log(222);  //因为test是异步的,所以222会比p早输出,test内部是按照顺序执行的
  • 相关阅读:
    比较@Resource、@Autowired
    Spring boot注解(annotation)含义详解
    Ubuntu进不去,显示error:unknown filesystem (最简单解决方案总结)
    自动更新变成灰色的解决方法
    桌面图标有阴影怎么去掉
    彻底禁止QQ更新
    重命名nginx服务器
    discuz 学习
    Ubuntu 更新源
    鼠标使用技巧 让网页自动向下翻或向上翻
  • 原文地址:https://www.cnblogs.com/luludongxu/p/13408462.html
Copyright © 2020-2023  润新知