ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 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的区别?