RXJS 和 Angular 1
RXJS and Angular 1
我正在尝试使用 RxJS 和 Angular 1。我 运行 遇到无法调用 .done()
、.fail()
的问题或 .always()
根据 $http
请求。是否可以在 Angular 1 中将 RxJS 与 $http
服务一起使用?
到目前为止,这是我设置可观察对象的方式:
angular.module('rxExampleApp')
.controller('Step3Ctrl', function ($http) {
var vm = this;
vm.requestStream = Rx.Observable.just('https://api.github.com/users');
vm.requestStream.subscribe(function (requestUrl) {
// execute the request
vm.responseStream = Rx.Observable.create(function (observer) {
$http.get(requestUrl)
.done(function (response) {
observer.onNext(response);
})
.fail(function (jqXHR, status, error) {
observer.onError(error);
})
.always(function () {
observer.onCompleted();
});
});
});
vm.responseStream.subscribe(function (response) {
console.log('TEST RESPONSE: ', response);
});
});
但我 运行 遇到一个错误,其中 $http.get.done
不是一个函数。在 Angular 1.4 中使用 RxJS 可以实现我想要实现的目标吗?
done
、fail
和 always
这些方法在 jQuery
Ajax 上可用,但在 angular [=15= 上可用] 方法。
$http.get
没有 return 承诺,您可以对它使用 .then
功能。所以你可以放置 success
、error
& completed
回调。
代码
$http.get(requestUrl)
.then(function (response) { //success function
observer.onNext(response);
}, function (error) { //error function
observer.onError(error);
}, function () { //completed callback
observer.onCompleted();
}
);
我正在尝试使用 RxJS 和 Angular 1。我 运行 遇到无法调用 .done()
、.fail()
的问题或 .always()
根据 $http
请求。是否可以在 Angular 1 中将 RxJS 与 $http
服务一起使用?
到目前为止,这是我设置可观察对象的方式:
angular.module('rxExampleApp')
.controller('Step3Ctrl', function ($http) {
var vm = this;
vm.requestStream = Rx.Observable.just('https://api.github.com/users');
vm.requestStream.subscribe(function (requestUrl) {
// execute the request
vm.responseStream = Rx.Observable.create(function (observer) {
$http.get(requestUrl)
.done(function (response) {
observer.onNext(response);
})
.fail(function (jqXHR, status, error) {
observer.onError(error);
})
.always(function () {
observer.onCompleted();
});
});
});
vm.responseStream.subscribe(function (response) {
console.log('TEST RESPONSE: ', response);
});
});
但我 运行 遇到一个错误,其中 $http.get.done
不是一个函数。在 Angular 1.4 中使用 RxJS 可以实现我想要实现的目标吗?
done
、fail
和 always
这些方法在 jQuery
Ajax 上可用,但在 angular [=15= 上可用] 方法。
$http.get
没有 return 承诺,您可以对它使用 .then
功能。所以你可以放置 success
、error
& completed
回调。
代码
$http.get(requestUrl)
.then(function (response) { //success function
observer.onNext(response);
}, function (error) { //error function
observer.onError(error);
}, function () { //completed callback
observer.onCompleted();
}
);