zoukankan      html  css  js  c++  java
  • es6

    promise - 反复进行回调函数.

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     8     <title>Promise</title>
     9 </head>
    10 
    11 <body>
    12     <script>
    13         // ES5
    14         function async(a, b, c) {
    15             setTimeout(function() {
    16                 c(a + b);
    17             }, 200);
    18         }
    19 
    20         // 反复回调 ... 再次
    21         async(1, 2, function(result) {
    22             console.log(result);
    23             if (result > 2) {
    24                 async(2, result, function(result) {
    25                     console.log(result);
    26                     if (result > 4) {
    27                         async(2, result, function(result) {
    28                             console.log('result');
    29                         });
    30                     }
    31                 });
    32             }
    33 
    34         });
    35         console.log(2);
    36 
    37 
    38         // ####################################################################################################
    39 
    40 
    41         // ES6 - promise
    42         function asyncPromise(a, b) {
    43             return new Promise(function(resolve, reject) {
    44                 setTimeout(function() {
    45                     // 如果值不为number对象
    46                     if (typeof a !== 'number' || typeof b !== 'number') {
    47                         reject(new Error('no number'));
    48                     }
    49                     resolve(a + b);
    50                 }, 200);
    51             });
    52         }
    53         // 错误捕获 - 一旦开始捕获了,catch就不会再重新捕获
    54         asyncPromise('a', 2)
    55             .then(function(result) {
    56                 if (result > 2) {
    57                     return asyncPromise(result, 2);
    58                 }
    59             }, function(err) {
    60                 console.log('one no number!');
    61             })
    62             .then(function(result) {
    63                 if (result > 4) {
    64                     console.log('result');
    65                 }
    66             }).catch(function(err) {
    67                 console.log(err);
    68             });
    69     </script>
    70 </body>
    71 
    72 </html>
  • 相关阅读:
    pku 1330 LCA
    最近公共祖先(LCA)的Tarjan算法
    字典数模板
    字典树
    RMQ问题ST算法与模板
    RMQ(Range Minimum/Maximum Query)问题:
    罗穗骞的dc3和倍增法
    多重背包问题
    tarjan LCA 算法
    终极工程师的造诣 – 不迷信高科技的乔布斯给我们的启示
  • 原文地址:https://www.cnblogs.com/cisum/p/9341836.html
Copyright © 2011-2022 走看看