回调函数就是一个**通过函数指针调用的函数,用以处理异步参数请求,把函数内部的值返回到函数外部**。它剥夺了函数return的能力。 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
```
function http(success){
$.ajax({
url:"https://douban.uieee.com/v2/movie/in_theaters",
dataType:"jsonp",
success:res=>{
success(res)
}
})
};
http(res=>{
console.log(res)
})
```
*****
**回调地狱**
回调函数是异步的,每一层的回调函数都需要依赖上一层的回调执行完,所以形成了层层嵌套的关系最终形成回调地狱。
>[success] 你要根据这个接口中的id寻找另一个接口,那个接口才有详情页
以下是回调地狱理解版:
```
<div id="div"></div>
<img src="" alt="">
<p id="p"></p>
<script>
$.ajax({
url: "http://192.168.22.2/movie/search?q=%E4%BD%A0%E7%9A%84%E5%90%8D%E5%AD%97&count=1",
dataType: "jsonp",
success: res => {
let subjects = res.subjects[0];
let { title, images,id} = subjects; //解构
$("#div").html(title)
$("img").attr("src", images.small)
console.log(res);
console.log(id);
$.ajax({
url:`http://192.168.22.2/movie/${id}`,
dataType:"jsonp",
success:res => {
console.log(res);
let summary = res.summary;
console.log(summary);
$("#p").html(summary);
}
})
}
})
</script>
```
- HTML,CSS
- 如何书写高效的css样式
- box-shadow
- 表格合并行列
- 自适应单位
- 隐藏元素
- 浏览器缓存
- 浏览器内核
- css和js的合理走位
- 2021样式问题汇总
- 模拟面试
- 移动端适配问题
- flexible(rem)
- vw+rem
- 判断一个属性是对象的私有属性
- px rpx em rem vw
- 清除浮动
- 栅格系统
- get&&post
- 雪碧图
- new操作符
- call apply bind区别
- 前端模块化
- 回调函数
- 回调地狱(封装版)
- 回调地狱(promise)
- 回调地狱(generator)
- 回调地狱(async)
- es6新特性
- let
- 箭头函数
- 展开 解构 默认赋值
- vue生命周期
- axios封装
- axios跨域拿数据
- ajax封装
- JavaScript
- 数组
- 排序
- 取偶数
- 反转排序
- 取最大值
- 数组去重
- 复杂版
- 数组的克隆(深拷贝)的方法
- 求质数
- 原型和原型链
- 创建对象
- 什么是路由
- SASS
- jQuery中的append和prepend区别?
- css动画及js动画的区别
- 隐式类型转换
- 原型
- 事件传播
- 函数
- 增加属性
- 构造函数
- 一元操作符
- 作用域
- 短语
- Vue
- - nextTick
- 自我介绍
- 哦豁(;д;)
- for in效果
- 事件
- promise特点
- 如何实现一个ajax请求
- 媒体查询
- substr和substring
- MVC、MVVM
- 面向对象
- 取数据、渲染数据
- ajax
- vue
- React
- es6-class
- 几种类型的DOM节点
- js同源策略
- 闭包
- 2021
- 数据类型
- 闭包2
- 防抖节流
- 原型与原型链
- call与apply与bind
- 深浅拷贝
- New关键字
