1
私のサービスでは、Http
を使用するいくつかのメソッドを定義しました。例えばhttpメソッドからのストリームを返します
:
this.getUsers().subscribe(success=> DO SOMETHING);
または
this.getUsers().then(DO SOMETHING);
を:私はやって滑走しています何
getUsers(){
this._http.get('someapi')
.map(res=>res.json())
.subscribe(success=>this.users = success; console.log(success))
}
、それは例えば、約束を返すように、この方法を設定することです
これまで私はこれを得ました:
01確かに私が行うことができます:それは、想定のように実際に動作するdoesntの
after success
DONE
:
this.getUsers().subscribe(success=> console.log('after success'))
しかし、私はデバッグするとき、私はそのコンソール出力がある見ることができます。私はどこで間違いをしていますか?
UPDATE
私はティエリが提供する答えは作品にもかかわらず、私は少しで詳細を私の質問を説明しますね。
私は、次のない私のサービス、方法getUserById()
を持っている:
getUserById(someId){
if(this.users.length){
var i = _.findIndex(this.users, {"id":someId};
return this.users[i]
} else {
this.getUsers().then(find the user)//then should be invoked when users are there
}
}
うーん:
編集
あなたのサービスのご
getUserById
方法については、私はそのような何かをしようとするだろう。では、subscribeとdoの違いは何ですか? – uksz購読せずに何らかの処理を実行することができます。この文書:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/do.mdを参照してください。 –
あなたの場合、あなたは本当に 'getUsers'メソッドの中で購読したくありません。私はあなたが最後にほしいと思うだけです;-) –