在回调上返回可观察的项目

时间:2017-03-22 12:59:30

标签: typescript rxjs ngrx

我需要driver.findElement(By.linkText("Chennai, Tamilnadu")).click(); switchMap

Observables<Action>

,其中

this.actions$
    .ofType('LOAD_SOURCES')
    .switchMap((action: Action) =>
      Stripe.card.createToken(
        <StripeCardTokenData>{name: "PLACEHOLDER NAME"},
        (status, response) {

        }
      )
);

如您所见,private actions$: Actions; class Actions extends Observable<Action> {...} export interface Action { type: string; payload?: any; } 的第二个参数是我应该处理的回调函数。所以,我不知道在达到回调时返回一个新的动作,因为它已经通过了。它被称为observable。

回调的签名是:

createToken

正如你所看到的那样,createToken(data: StripeCardTokenData, responseHandler: (status: number, response: StripeCardTokenResponse) => void): void; 重新开始了!

如果根据响应数据达到回调,我怎么能创建一个Action项?

所以目标是返回另一个动作(但是当达到回调时:

=> void

我不知道我是否解释得那么好。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想从所有回调中创建一个observable。如果是,请查看bindCallback。以下是文档的链接:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-bindCallback

例如:

&#13;
&#13;
const log = (val, cb) => cb(val);
const trace = Rx.Observable.bindCallback(log);

trace('hello')
  .subscribe(x => console.log(x));
&#13;
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
&#13;
&#13;
&#13;