2017-03-03 7 views
1

私は人を知りませんが、これは何が間違っていますか? res.success戻りfalse毎回this.auth.localStore('user_info', data)がトリガーされます場合でもObservable.ifが正しく動作しない

this.auth.userAvailable(data.email) 
    .flatMap(res => { 
     return Observable.if(
     function() { 
      return res.success; 
     }, 
     Observable.fromPromise(this.auth.localStore('user_info', data)), 
     Observable.throw(new Error('User exists')) 
    ) 
    }) 
    .subscribe(res => { 
     this.navCtrl.push(ServiceProviderBusinessInfoPage); 
    }, err => { 
     let error = err.json(); 
     this.alertCtrl.create({ 
     title: 'Error', 
     message: error.message, 
     buttons: ['OK'] 
     }).present(); 
    }); 

は、 も

は、このコードで私を助けて成功コールを解雇されていないサブスクライブ、私はそこにあなたの場合はrxjs

+0

わからないが、 'arrow function'に' 'Observable.if( ()=> { return res.success; }、 ' – micronyks

+0

はまだ同じですし、また成功呼出を購読するには至っていません –

答えて

2

のために新しいですObservable.ifが本当に必要ではないので、簡単に使用しないでください。switchMap

+0

これは非常に良い解決策ですが、私がelse条件を持っていなければどうしますか?それは同じ、再びありがとう:) –

+1

else-_condition_はこの例です。それとも別の意味ですか?その場合、 'Observable.never'または' Observable.empty'を返すことができます。この場合は、何も違いはありません。 – olsn

関連する問題