带着以下疑问来解答以下问题,你会学到很多
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())