2017-05-02 16 views
-1

は私がちょうどそうのようなオブザーバーを作成する機能は、関数が完了したとき

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

を持って言うことができます待ち受ける観察可能作成します非同期メソッドと呼ばれるかどうか、私はちょうどアクションが返されるときに購読したい。観察可能な創造物に新しいことを教えて、よいアプローチについてのガイダンスを探しています。ありがとう!

答えて

1

JavaScriptの値(文字列、オブジェクト、...)はObservable.of(...)または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を(使用して観測に変換することができます。 ..)は、観測可能な遅延を作成するために使用できます。

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

大変感謝!私が探していたもの – 29er

関連する問題