某公司的网站建设的资金预算书,徐州网页,外贸商老贾的微博,如何远程登录网站服务器概述#xff1a;
回调地狱#xff08;Callback Hell#xff09;是指在异步编程中#xff0c;多层嵌套的回调函数导致代码难以理解、维护和扩展的情况。
代码展示#xff1a;
ajax({url: 我是第一个请求,success (res) {// 现在发送第二个请求ajax({url: 我是第二个请求…概述
回调地狱Callback Hell是指在异步编程中多层嵌套的回调函数导致代码难以理解、维护和扩展的情况。
代码展示
ajax({url: 我是第一个请求,success (res) {// 现在发送第二个请求ajax({url: 我是第二个请求data: { a: res.a, b: res.b },success (res2) {// 进行第三个请求ajax({url: 我是第三个请求,data: { a: res2.a, b: res2.b },success (res3) {console.log(res3)}})}})}
})
解决方案Promise
promise 就是一个语法
我们的每一个异步事件在执行的时候
都会有三个状态执行中 / 成功 / 失败
因为它包含了成功的回调函数
所以我们就可以使用 promise 来解决多个 ajax 发送的问题 new Promise(function (resolve, reject) {
// resolve 表示成功的回调
// reject 表示失败的回调
}).then(function (res) {
// 成功的函数
}).catch(function (err) {
// 失败的函数
})
上面回调地狱改写为Promise方式
new Promise(function (resolve, reject) {ajax({url: 第一个请求,success (res) {resolve(res)}})}).then(function (res) {// 准备发送第二个请求return new Promise(function (resolve, reject) {ajax({url: 第二个请求,data: { a: res.a, b: res.b },success (res) {resolve(res)}})})}).then(function (res) {ajax({url: 第三个请求,data: { a: res.a, b: res.b },success (res) {console.log(res)}})
})