我想了解当通过http调用时,回调和成功回调之间的区别。当我使用然后回调时,它会返回数据,但是成功的回调不会。下面是代码
然后回调
$http.get(url).
then(function(response) {
response.data.data;});成功回调
$http.get(url).
success(function(response) {
response.data;});发布于 2015-01-17 13:36:38
你的问题似乎围绕着这一点:
$http.get(‘/偏词’)success(function(data,状态,标头,配置){
这与then的回报不同,
方法来注册回调,这些回调将收到一个参数--一个表示响应的对象。
换句话说,你应该这样做:
$http.get(...).success(function(data){ console.log(data) })
$http.get(...).then(function(response){ console.log(response.data) })当然,链接的差异,但似乎与您的问题无关:
then()
如果您链接then(),回调将在每个调用完成后依次运行,因为它在每个链上返回一个新的允诺对象。
success() (与error()一起被废弃*)
如果您链接success()调用,回调将并行运行,因为它返回原始的承诺对象。
*success和error已不再推荐,参见$http文档中的弃用通知一节
发布于 2015-01-17 15:16:15
您可以使用任何.then或.success,回调代码取决于您使用的方法。
.then()将有两个参数,第一个是成功处理程序,第二个是内部的错误handler.success处理程序,那么()只能用其他方式编写,只有.success.the主要区别于.success ()和.success函数.success将有4个参数(数据、状态、标头、配置),其中作为成功处理程序,在该参数中只有一个参数(数据、状态、标头、配置),但您可以像(response.data、response.status等)一样访问它。
发布于 2015-10-09 17:38:56
angularjs.org的重要推荐
-- $http遗留承诺方法--成功和错误已被否决。使用标准,然后用方法代替。如果$httpProvider.useLegacyPromiseExtensions设置为false,则这些方法将引发$http/旧式错误。
https://stackoverflow.com/questions/27999899
复制相似问题