zoukankan      html  css  js  c++  java
  • JS备忘

    1. Promise用法

    js异步调用较多,如果某个操作是基于上个异步结果才能执行的,再有一个操作又是基于此操作的,则需要嵌套多层代码,在ES6中引入了Promise写法,可以比较优雅的解决这个问题:

        <script type="text/javascript">
            function runAsync1(para) {
                var p = new Promise(function (resolve, reject) {
                    //做一些异步操作
                    setTimeout(function () {
                        console.log('异步任务1执行完成');
                        resolve(para + 1);
                    }, 1000);
                });
                return p;
            }
            function runAsync2(para) {
                var p = new Promise(function (resolve, reject) {
                    //做一些异步操作
                    setTimeout(function () {
                        console.log('异步任务2执行完成');
                        resolve(para + 2);
                    }, 2000);
                });
                return p;
            }
            function runAsync3(para) {
                var p = new Promise(function (resolve, reject) {
                    //做一些异步操作
                    setTimeout(function () {
                        console.log('异步任务3执行完成');
                        resolve(para + 3);
                    }, 2000);
                });
                return p;
            }
    
            runAsync1(1)
            .then(function (data1) {
                console.log(data1);
                return runAsync2(data1);
            })
            .then(function (data2) {
                console.log(data2);
                return runAsync3(data2);
            })
            .then(function (data3) {
                console.log(data3);
            });
    
        </script>
    

     输出的结果是:

    异步任务1执行完成
    2
    异步任务2执行完成
    4
    异步任务3执行完成
    7
    

     只需要看最后几行就可以,第一个then接收runAsync1的返回值data1可以将其传递给第二个操作,第二个then接收runAsync2的返回值data2将其当做参数传递给第三个操作。

  • 相关阅读:
    python3+request接口自动化框架
    类型转换函数
    操作符重载(三)
    操作符重载(二)
    操作符重载(一)
    时间获取函数
    文件和目录
    Linux五种IO模型
    类中的函数重载
    系统调用IO和标准IO
  • 原文地址:https://www.cnblogs.com/madyina/p/6697548.html
Copyright © 2011-2022 走看看