deferred.resolve(data); 之间有什么区别?和 deferred.resolve();在 angularJS 个服务电话中?
what is the difference between deferred.resolve(data); and deferred.resolve(); in angularJS service calls?
我找到了 2 个变体,例如
1. deferred.resolve();
2. deferred.resolve(数据);
服务响应后。 2有什么区别。我必须严格使用哪个。
当您调用服务时,这意味着您正在等待服务器的响应。
响应可能是简单的成功或一些数据。
myServiceFunction = function() {
var deferred = $q.defer();
$http.post/get(myURL,someData/*not mandatory*/)
.success(function(response){ // you get into this function when everything goes right
deferred.resolve(response); //your sending back the server's response to your controller (or whatever has called this function)
})
.error(function(response){
deferred.reject(response); // your also sending back the server's response but using reject means that something gone wrong on server call
})
return deferred.promise; // don't forget to send the promise!!
}
在上面的示例中,我将响应服务器发送回调用服务函数的服务器。
但如果您只需要知道请求成功,那么一个简单的 deferred.resolve()
就足够了(并且 deferred.reject()
- 告诉它没有成功)。
为了缩短它,以下是你应该知道的:
deferred.resolve()
- 表示请求成功
deferred.reject()
- 请求失败
deferred.resolve(data)
- 表示请求成功,这里有一些数据
deferred.reject(data)
- 请求失败,这里是一些数据
希望够清楚
第一种情况:
function getPromise() {
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
getPromise().then(
function(data) {
console.log(data); // Output "undefined"
}
);
第二种情况:
function getPromise() {
var deferred = $q.defer();
var data = "hello";
deferred.resolve(data);
return deferred.promise;
}
getPromise().then(
function(data) {
console.log(data); // Output "'hello'"
}
);
因此,这一切都与您如何解决承诺有关,是否将信息传递给已解决承诺中的函数。
我找到了 2 个变体,例如 1. deferred.resolve(); 2. deferred.resolve(数据);
服务响应后。 2有什么区别。我必须严格使用哪个。
当您调用服务时,这意味着您正在等待服务器的响应。 响应可能是简单的成功或一些数据。
myServiceFunction = function() {
var deferred = $q.defer();
$http.post/get(myURL,someData/*not mandatory*/)
.success(function(response){ // you get into this function when everything goes right
deferred.resolve(response); //your sending back the server's response to your controller (or whatever has called this function)
})
.error(function(response){
deferred.reject(response); // your also sending back the server's response but using reject means that something gone wrong on server call
})
return deferred.promise; // don't forget to send the promise!!
}
在上面的示例中,我将响应服务器发送回调用服务函数的服务器。
但如果您只需要知道请求成功,那么一个简单的 deferred.resolve()
就足够了(并且 deferred.reject()
- 告诉它没有成功)。
为了缩短它,以下是你应该知道的:
deferred.resolve()
- 表示请求成功deferred.reject()
- 请求失败deferred.resolve(data)
- 表示请求成功,这里有一些数据deferred.reject(data)
- 请求失败,这里是一些数据
希望够清楚
第一种情况:
function getPromise() {
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
getPromise().then(
function(data) {
console.log(data); // Output "undefined"
}
);
第二种情况:
function getPromise() {
var deferred = $q.defer();
var data = "hello";
deferred.resolve(data);
return deferred.promise;
}
getPromise().then(
function(data) {
console.log(data); // Output "'hello'"
}
);
因此,这一切都与您如何解决承诺有关,是否将信息传递给已解决承诺中的函数。