如何使我的async函数在angular中成为一个承诺
how to make my async function a promise in angular?
我在AngularJS工作,我有一个服务,其中post方法是:
var xhrService = {
post: function(url, data) {
xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.send(data);
return xhr;
}}
我希望能够像内置的(angular)$http服务一样使用此服务,并取得成功&错误方法。如果不使用其他库,那就太好了。
您至少需要$q
服务来创建deferred
,然后从函数返回deferred.promise
。然后根据结果解决或拒绝它。
var deferred = $q.defer();
var req = new XMLHttpRequest();
req.open('GET', url);
req.onload = function() {
if (req.status == 200) {
deferred.resolve(req.response);
}
else {
deferred.reject(req.statusText);
}
}
req.onerror = function() {
deferred.reject('error');
};
req.send();
return deferred.promise;
相关文章:
- 一个承诺换多个承诺-并发问题
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- element.sortable 不是一个函数 Angular
- WinJS,从可能是异步的函数返回一个承诺,也可能不是异步的
- 在jQuery中,.state()如何确定一个承诺是挂起的、已解决的还是被拒绝的
- 转换嵌套'对于'循环成一个承诺,为了一个承诺?嵌套承诺
- 另一个错误:Angular Web应用程序中的[$resource:badcfg]
- 我需要一个使用Angular.js的输入框,它的值取决于一个公式
- 如何通过Bluebird承诺您自己的javascript api,该api使用另一个承诺的api
- jasmine 2.0测试angularjs的工厂方法,这是一个承诺
- 调用$http以响应另一个HTTP - Angular JS
- 做一些 ajax 并使用 getJSON 返回一个承诺
- 在angular.extend()中向变量返回一个承诺的值
- 如何使我的async函数在angular中成为一个承诺
- 在Angular应用的路由中的resolve中创建一个承诺
- 返回一个承诺,而不是用angular's $q.then()来解决它
- 在Angular.js中,当一个承诺被履行时,如何总是运行一些代码
- 创建一个承诺,使用angular factory从firebase访问多个数据点
- Angular的承诺(关于一个承诺?)或者如何在$http之后链接一个.then.成功的角度
- Angular:如何销毁一个承诺