私はf(x, callback)
をObservable<Action>
に変換するためにbindCallBack
を使用しています。 f(x, callback)
である場合:rxjs:bindCallbackはObservableの悪い署名を返します
f(
data: StripeCardTokenData,
responseHandler:
(
status: number,
response: StripeCardTokenResponse
) => void
): void;
だから、f
はStripe.card.createToken
です。
StripeCardTokenResponse
がある
:だから
export interface Action {
type: string;
payload?: any;
}
、私はactions$
にObservable<Action>
を宣言した:
interface StripeTokenResponse {
id: string;
client_ip: string;
created: number;
livemode: boolean;
object: string;
type: string;
used: boolean;
error?: StripeError;
}
一方では、私はAction
があるObservable<Action>
を使用しています
this.actions$
.ofType('ADD_SOURCE')
.switchMap(
(action: Action) => {
((((1))))
);
だから、((((1))))
私はStripe.card.createToken(data, callback)
に電話し、callback(status, response)
のresponse.error
に電話する必要があります。(Observable.of(<Action>{ type: 'ADD_SOURCE_SUCCESS' }))
または(Observable.of(<Action>{ type: 'ADD_SOURCE_SUCCESS' }))
を返す必要があります。
しかし、私はいくつかの問題を抱えています。
まず、私が観察可能なコールバックを作成する必要があります。
だから、(local var) callback: (v1: StripeCardTokenData) => Observable<number>
、callback
がObservable<number>
です:
var callback = Observable.bindCallback(Stripe.card.createToken);
それでも、typescriptですがcallback
があることを私に語っています。それに対処するにはresponse: StripeCardTokenResponse
はどこですか?
私はそれをとてもうまく説明したかどうかわかりません。私はそれで本当に苦労していますが、私はそれを解決する方法をかなり理解していません。