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>
  • 相关阅读:
    洛谷 P1508 Likecloud-吃、吃、吃
    Codevs 1158 尼克的任务
    2017.10.6 国庆清北 D6T2 同余方程组
    2017.10.6 国庆清北 D6T1 排序
    2017.10.3 国庆清北 D3T3 解迷游戏
    2017.10.3 国庆清北 D3T2 公交车
    2017.10.3 国庆清北 D3T1 括号序列
    2017.10.4 国庆清北 D4T1 财富
    2017.10.7 国庆清北 D7T2 第k大区间
    2017.10.7 国庆清北 D7T1 计数
  • 原文地址:https://www.cnblogs.com/cisum/p/9341836.html
Copyright © 2011-2022 走看看