AngularJS $ http.get然后和成功回调之间的区别

Vai*_*u13 6 javascript angularjs

我想了解当通过http get调用时回调和成功回调之间的区别.当我使用然后回调它返回数据,但成功回调它不.下面是代码

然后回调

$http.get(url).
  then(function(response) {
     response.data.data;});
Run Code Online (Sandbox Code Playgroud)

成功回调

$http.get(url).
   success(function(response) {
     response.data;});
Run Code Online (Sandbox Code Playgroud)

bak*_*kal 6

您的问题似乎与此有关:

$ http.get( '/ someUrl').成功(功能(数据,状态,标题,配置){

这是一个不同的回报then,

then注册回调的方法,这些回调将接收一个参数 - 一个表示响应的对象

换句话说,你应该这样做:

$http.get(...).success(function(data){ console.log(data) })
$http.get(...).then(function(response){ console.log(response.data) })
Run Code Online (Sandbox Code Playgroud)

当然还有链接差异,但似乎与您的问题无关:

then()

如果链接then(),回调将在每个回调完成后按顺序运行,因为它在每个链上返回一个新的promise对象

success()(已弃用*error())

如果链接success()调用,则回调将并行运行,因为它返回原始的promise对象

*successerror已被弃用,请参阅取消通知中部分$ HTTP文档