2017-01-28 32 views
9

ben a uygulanan varsa gözlemlenebilir bitene kadar bekleyin eğer arka uç bir yanıt koşul bekler eğer buangular2 koşulu

if (this.service.check()) { 
     return true; 
    } 
    else { 
} 

böyle beyanı. Ancak gözlemlenebilir hale gelmeden önce, başka bir ifadeye girer ve koşulu baştan kontrol etmeden koşulu bitirir.

bu Bunu bir Observable için sabırsızlanıyorum arka uç

cevap

14

yanıtı alıncaya kadar koşul bekler hale nasıl

public check(){ 
     this.getActorRole().subscribe(
     (resp => { 
      if (resp == true){ 
      return true 
     } 

     }), 
     (error => { 
      console.log(error); 
     }) 
    ); 
    } 
} 

Yani arka uç veri almak için benim gözlemlenebilir yöntemdir veya tamamlamak için Promise. Bir etkinliği tamamladığında veya yayınladığında bildirim almak için yalnızca abone olabilirsiniz. Eğer o zaman bu kodun arayanın da dönüş değerine bağlıdır eğer

this.service.check().subscribe(value => { 
    if (value) { 
    return true; 
    } 
    else { 
    } 
} 

ama

tekrar

this.service.check() 
.map(value => { 
    if (value) { 
    return true; 
    } 
    else { 
    } 
} 

gerekiyor ve ondan sonra

public check(){ 
    return this.getActorRole() // <<<=== add return 
    .map(resp => { 
      if (resp == true){ 
      return true 
     } 
    ); 
    } 
} 

aramak subscribe() yapmak Bu kod

+0

Zaten zaten .map uygulanan sorun var başka bir koşulu çalıştırılıyor d() işlevi finshe'nin yürütülmesinden önce d. Yani her zaman başka bir koşulu olan – kohli

+0

kodunun bir 'map (...) ',' subscribe (...)' ya da gözlemlenebilir herhangi bir operatörün içinde olması gerekiyor. –