如何链接rxjs可观察

时间:2016-03-29 08:23:51

标签: angular rxjs

我来自Angular1,就像链接承诺一样,我希望有类似的行为。

我在 someclass 中有一个方法: -

 someclass.doLogin(username, password).subscribe(
           data => { }, //Not getting called
            err => { }
 }

然后我称这种方法: -

function mymodule_libraries_info() {

'paypal' => array(
      'name' => 'PayPal SDK',
      'xautoload' => function($adapter) {
       $adapter->composerJson('composer.json'); 
     }
}

正如我上面提到的对上述代码的评论,未在调用者类中调用subscribe。

有关如何执行此操作的任何建议吗?

1 个答案:

答案 0 :(得分:4)

实际上,您返回subscribe方法的对象。这是订阅而不是可观察的。因此,您将无法(再次)订阅返回的对象。

Observables允许基于可观察的运算符构建数据流链。这取决于你想做什么。

如果您只是触发某项内容或从服务中设置服务属性,则可以使用do运算符和catch运算符进行错误处理:

doLogin (username, password) {
  .......
  .......
  return this.http.get(api).do(data => {
    .....
    // Call something imperatively
  })
  .catch(err => {
    .....
    // Eventually if you want to throw the original error
    // return Observable.throw(err);
  });
}

不要忘记包含这些运算符,因为Rxjs不包含这些运算符:

import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';

或全球(所有运营商):

import 'rxjs/Rx';

参见相关问题: