gpt4 book ai didi

javascript - Angular httpPromise

转载 作者:行者123 更新时间:2023-11-30 08:31:42 25 4
gpt4 key购买 nike

我有一个请求函数:

function search(request) {
return $http.post('/path/to/resource', request);
}

我可以这样调用它:

search({/*...*/})
.success(function() {})
.error(function() {})

因为我经常需要通过ID来查找一些对象,所以我需要一个快捷功能。我找不到如何创建此函数,以便我也可以将它与 success()error() 函数链接起来。

我搜索了如何在 Angular 中创建 promise 并找到了 documentation about $q这就是我尝试过的:

function searchById(id) {
var deferred = $q.defer();
search({id: id}).
then(function (response) {
deferred.resolve(response.data.results[0]);
}, function (error) {
deferred.reject(error);
});
return deferred.promise;
}

我只能这样调用它:

searchById().then(successCallback, errorCallback);

我希望能够这样调用它:

searchById()
.success(successCallback)
.error(errorCallback);

关于 $q 的文档表明它返回一个 promise 而关于 $http 的文档表明它返回一个 httpPromise 但我不知道如何创建 httpPromise

有什么想法吗?

最佳答案

在 Angular promise 中,错误回调应该是捕获而不是错误,试试这个

searchById()
.then(successCallback)
.catch(errorCallback);

sjokkogutten 是正确的,在这种情况下你不需要使用 $q 你可以简化这个

  var deferred = $q.defer();
search({id: id}).
then(function (response) {
deferred.resolve(response.data.results[0]);
}, function (error) {
deferred.reject(error);
});
return deferred.promise;

对此

return search({id: id}).
then(function (response) {
return response.data.results[0];
}

关于javascript - Angular httpPromise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36986464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com