2017-05-02 1 views
-1

sagen lässt ichbeobachtbare schaffen, die für zuhört, wenn eine Funktion beendet

deleteUser(id){ 
    if(idExists(id){ 
     return RxJs.fromPromise(http.request...) 
    }else{ 
     return 'somethingNonAsych' 
    } 
} 

Ich möchte nur einen Beobachter erstellen, wie so eine Funktion haben:

deleteUser.subscribe((complete) => { 
    //user has been deleted somehow 
} 

ich, wenn die Funktion nicht kümmern Async-Methode aufgerufen oder nicht, ich möchte nur abonnieren, wenn die Aktionen zurückgibt. Ich bin neu in der Observable Creation und suche nach einer Anleitung für einen guten Ansatz. Vielen Dank!

Antwort

1

JavaScript Werte (string, Objekt, ...) können zu beobachtbaren umgewandelt werden unter Verwendung von Observable.of (...) oder Observable.from (...)

function idExists(id) { 
    return id === 'exist' ? true : false; 
} 

function deleteUser(id) { 
    if (idExists(id)) { 
     return RxJS.Observable.fromPromise(Promise.resolve('delete user')); 
    } else { 
     return RxJS.Observable.of('user not exist'); 
    } 
} 

deleteUser('exist').subscribe((value) => { 
    console.log(value); 
}) 

deleteUser('not exist').subscribe((value) => { 
    console.log(value); 
}) 

Observable.defer (. ..) kann verwendet werden, um beobachtbar träge zu erstellen.

function idExists(id) { 
    return id === 'exist' ? true : false; 
} 

function deleteUser(id) { 
    Observable.defer(() => { 
     if (idExists(id)) { 
      return RxJS.Observable.fromPromise(Promise.resolve('delete user')); 
     } else { 
      return RxJS.Observable.of('user not exist'); 
     } 
    }).subscribe((value) => { 
     console.log(value); 
    }) 
} 

deleteUser('exist'); 
deleteUser('not exist'); 
+0

viel Dank! genau das was ich gesucht habe – 29er

Verwandte Themen