我想在我的项目中使用Rxjs
,该项目基于Angular 1.5
并在ECMA 5
中编写。我想重写我的服务方法,这些方法基于promises并希望实现Observables。
我在服务中这样写:
function service(Restangular) {
var self = this;
self.user = new Rx.Subject();
var service = {
artistStream: artistStream,
};
function artistStream(artist) {
self.user.onNext({
data : Restangular
.all('text/')
.customGET('search', {q : artist})
});
}
return service;
}
然后我尝试在我的组件中使用此服务:
function testRx(artist) {
console.log(artistService.artistStream(artist));
}
我从控制台收到错误:
TypeError:self.user.onNext不是函数
我做错了什么?这是我第一次使用Observables
答案 0 :(得分:3)
好的,重写服务并正常工作。
function artistStream(artist) {
const promise = Restangular
.all('text/')
.customGET('search', {q : artist})
const subscription = Rx.Observable.fromPromise(promise);
return subscription;
}