zoukankan      html  css  js  c++  java
  • es6

    带着以下疑问来解答以下问题,你会学到很多

    1. 回调深渊为什么会出现,为什么需要回调 ?

    2. ES6为什么会出现Promise?

    3. 回调的作用是什么? 跟闭包有关吗?

    ES5 ~ ES6 回调深渊  -示例

     1 // 回调深渊 - 实例
     2 function callbackAbyss(a, b, cb) {
     3     setTimeout(function () {
     4         cb(a + b);
     5     }, 200)
     6 }
     7 
     8 // 回调深渊 - 调用
     9 callbackAbyss(1, 2, function (result) {
    10     let count = 1;
    11     if (result > 2) {
    12         console.log('回调深渊第' + count++ + '次输出结果:', result);
    13         callbackAbyss(result, 2, function (result) {
    14             console.log('回调深渊第' + count++ + '次输出结果:', result);
    15             if (result > 4) {
    16                 callbackAbyss(result, 2, function (result) {
    17                     console.log('回调深渊第' + count + '次输出结果:', result);
    18                 })
    19             }
    20         })
    21     }
    22 })
    23 
    24 
    25 
    26 // 回调深渊 - ES6 - 实例
    27 function callbackAbyssEs6(a, b, cb) {
    28     return new Promise(function (resolve, reject) {
    29         setTimeout(function () {
    30             resolve(a + b);
    31         }, 1000)
    32     })
    33 }
    34 // 回调深渊 - ES6 - 调用
    35 callbackAbyssEs6(1, 2)
    36     .then(function (result) {
    37         if (result > 2) {
    38             console.log('es6回调深渊第1次输出结果:', result);
    39             return callbackAbyssEs6(2, result);
    40         }
    41     })
    42     .then(function (result) {
    43         if (result > 4) {
    44             return callbackAbyssEs6(result, 2);
    45         }
    46     })
    47 // ... then(function())
  • 相关阅读:
    架构设计:系统间通信(38)——Apache Camel快速入门(下1)
    打开文件
    求阶乘
    创建链表
    函数模板返回两个值的最小值,确保能正确处理字符串
    运算符重载两数组相加
    图书管理
    计算不同形状的面积
    不同人的信息,虚函数
    输出平面上三角形的面积
  • 原文地址:https://www.cnblogs.com/cisum/p/9435476.html
Copyright © 2011-2022 走看看