基于Obularable和Angular 1.5的简单服务

时间:2017-04-13 10:28:09

标签: angularjs rxjs

我想在我的项目中使用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

1 个答案:

答案 0 :(得分:3)

好的,重写服务并正常工作。

        function artistStream(artist) {

        const promise = Restangular
                    .all('text/')
                    .customGET('search', {q : artist})

        const subscription = Rx.Observable.fromPromise(promise);

        return subscription;

    }