2016-07-08 2 views
0

Ich glaube, dass, um zwei Params ordnungsgemäß auf den Rückruf zurückverwandelt werden, wenn Observable.bindCallback Methode verwenden Sie die "Selektor" -Funktion verwenden, aber ich kann keine Dokumentation finden, die erläutert, wie dies zu tun ist. Ich habe vielleicht ein Missverständnis darüber, was die Selektor-Funktion macht, aber es sollte trotzdem dokumentiert werden.Wie verwende ich die RXJS-Auswahlfunktion in der Observable.bindCallback-Methode?

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-bindCallback

function testLogin(username, password, callback){ 
    // ... 
    callback(param1, param2); 
} 

function selectorFunction(???) { 
    // ??? 
} 

function onTestLoginComplete(param1, param2) { 
    // ... 
} 

var observableFactory = Observable.bindCallback(testLogin, selectorFunction); 
var observable = observableFactory('username', 'password'); 
observable.subscribe((param1, param2) => onTestLoginComplete(param1, param2)); 

Antwort

3

Die subscribe Funktion kann ein einziges Argument immer nur nehmen. Die selector-Funktion besteht also darin, einen Multiargument-Callback in ein einzelnes Element umzuwandeln. Im Allgemeinen bedeutet dies, dass Sie die Argumente in ein Objekt packen und später strukturieren können:

function testLogin(username, password, callback){ 
    // ... 
    callback(param1, param2); 
} 

//Convert this into a new object 
function selectorFunction(param1, param2) { 
    return {param1, param2}; 
} 

function onTestLoginComplete(param1, param2) { 
    // ... 
} 

var observableFactory = Observable.bindCallback(testLogin, selectorFunction); 
var observable = observableFactory('username', 'password'); 
//De-structure the argument when it is passed to subscribe. 
observable.subscribe(({param1, param2}) => onTestLoginComplete(param1, param2)); 
Verwandte Themen