### promise 是如何解决回调嵌套的。
比如我们需要发送ajax请求,需要对请求回来的数据再一次操作,再次发送请求,照以前的情况我们应该这样写:
~~~
$http({
method: 'GET',
url: '/carrots-admin-ajax/a/article/6211',
}).then(function (response) {
if (response.data.code === 0) {
//从接口获取数据,然后ng-repeat出来
$scope.articleList = response.data.data.articleList;
//第二次回调
$http({
method: "PUT",
url: '/carrots-admin-ajax/a/u/article/status',
params: {id: 6211, status: 1},
headers: {'Content-type': 'application/json'}
}).then(function (res) {
if (res.data.code === 0) {
//dosomething
}
})
} else {
alert('错误')
}
})
~~~
使用了promise,每当我们需要回调时,就把回调函数return出去,然后在下一个then执行回调函数的回调函数;
~~~
//一个回调函数
function http2() {
return $http({
method: 'PUT',
url: '/carrots-admin-ajax/a/u/article/status',
params: {id: 6211, status: 1},
headers: {'Content-type': 'application/json'}
})
}
$http({
method: 'GET',
url: '/carrots-admin-ajax/a/article/6211',
}).then(function (response) {
if (response.data.code === 0) {
//从接口获取数据,然后ng-repeat出来
$scope.articleList = response.data.data.articleList;
return http2()//如果请求成功,执行另一个ajax请求,把该请求return出去。
} else {
alert('错误')
}
})
//执行return函数的回调函数
.then(function (res) {
console.log(res);
});
~~~
return 和不return的区别?
- 空白目录
- Javascript
- angularjs
- 自定义指令
- scope
- 自定义指令的封装
- 自定义指令限制只能输入数字
- 轮播图
- 写angular的顺序
- $state
- video
- Es6
- Let
- 箭头函数
- export
- promise
- 函数
- vue
- vue安装,以及项目结构
- vue的使用
- easy-vue
- vue起步
- vue基础
- vue-router
- vue-各文件的依赖关系
- vuex
- vue使用sass语法
- mpvue使用wx.parse
- vue-cli 构建vue项目
- vant的使用
- vue使用插件及常见问题
- 原生Js
- 数组
- ajax
- 执行上下文
- 正则表达式
- jqurey
- jqurey-mobile
- html5
- 工具
- svn使用总结
- webpack
- webpack的构建
- WebStorm
- 切图相关
- 苹果手机注意事项
- other
- 前端的价值
- 面试相关
- css
- 小程序如何引用外部字体
- 流的理解
- 替换元素
- content和伪元素
- padding和background 绘制图形
- css圆角,阴影,渐变
- line-height verticle-align
- 使用background绘制4个直角
- android的字体偏上的问题
- 小程序
- 小程序常见问题
- 小程序常用效果
- mpvue
- nodejs
- 前端工程化学习笔记
- mork.js学习