admin 管理员组文章数量: 1087649
什么是地狱回调 / 解决回调地狱
前言
回调地狱就是函数作为参数层层嵌套,多用于ajax请求
在使用js是,为了实现某些逻辑经常会写出层层嵌套的回调函数
如果嵌套太多,就会影响到代码可读性和逻辑,这种情况就是会调地狱
一个异步请求嵌套另一个异步请求 ,另一个异步请求依赖于另一个的执行结果, 使用回调的方式相互嵌套,他会造成我们的代码可读性非常差 后期不好维护
地狱回调例子
ajax(url, () => {// 逻辑代码ajax(url, () => {// 逻辑代码ajax(url, () => {// 逻辑代码})})})
解决方案
async / await
// async / awaitfunction all(arg, val) {return new Promise((resolve, reject) => {// 使用定时器模仿异步操作setTimeout(() => {resolve(arg + val)}, 1000)})}async function render() {let a = await all('start,', '1,')let b = await all(a, '2,')let c = await all(b, '3,over')console.log(c); // start,1,2,3,over}render()
Promise.then() 链式调用
// promise.then() 的链式调用function all(arg1, arg2) {return new Promise((resolve, reject) => {setTimeout(() => {var result = arg1 + arg2resolve(result)}, 1000)})}all('start,', '1,').then(function (res) {return all(res, '2,')}).then(res => {return all(res, '3,')}).then(res => {console.log(res + 'over')})
本文标签: 什么是地狱回调解决回调地狱
版权声明:本文标题:什么是地狱回调解决回调地狱 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686652312a20619.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论