我对这个简单的问题没有太多答案。我的主要问题是我已经看到.then
方法在JavaScript中使用了很多,我知道randomobject.then(//This returns success, //this returns failure)
的主要内容。但有些事情我不会得到如下代码:
var success = function (response) {
return response.data;
};
var error = function (errResponse) {
$log.error(errResponse.data.Message);
};
function getsomeData() {
var url = baseUrl + 'api/somedata';
return $http.get(url).then(success, error);
}
首先在该代码中我想知道var成功如何知道它获得的数据和错误相同。它说response.data但是什么是响应?它可能是http.get
的结果,但代码明智无益。似乎当我有一个功能时,例如。
getsomeData
返回它返回的内容。如果我做ff:
var dataHolder = randomAngularService.getsomeData()
它返回一个对象,该对象包含$$state
下的数据,但如果你执行ff,.then
会以某种方式使其工作:
randomAngularService.getsomeData().then(function (response) {
if(response != null) {
console.log('got the data');
$scope.meeData = response;
}
});
我认为.then
只有两个参数?这让我很困惑。
.then
属性也是JavaScript方法或jQuery方法吗?
答案 0 :(得分:2)
用于替换(或提供替代方式)旧回调机制以更简洁的方式处理异步请求,而不是将回调作为参数传递,您可以使用.then
链接您的函数,一旦承诺得到解决,给定的功能将被执行。
无论如何,这只是一个基本的解释,你应该真正进入承诺书以获取更多信息。
答案 1 :(得分:1)
我懒得解释整个承诺的事情,但只是回答关于.then
的问题
.then
内的2个参数实际上意味着"当承诺解决(成功)/拒绝(失败)时调用此函数"
关于函数内部的参数,它们应该在API中指定,因为调用者(例如$ http.get)可以决定调用该函数时要传递的内容。