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())
复制代码

 

posted @   Sunsin  阅读(686)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示