2016-09-30 32 views
7

'da bir vaat değerinin döndürülmesi Angular2, Ionic2 ve ile kendimi tanıyorum, belki bir şeyi yanlış anlamıyorum ama yardım bekliyorum.Angular 2, Ionic 2

LocalStorage verilerini depolamak ve almak amacıyla 'CurrentUser' adlı bir sağlayıcım var.

 getProfile(): any { 
     this.local.get("user-profile").then((profile) => { 
     var val = JSON.parse(profile); 
     return val; 
    }); 
} 

Ben bir bileşeni haline bu sağlayıcıyı enjekte Bir Promise

döndürür getProfile() bu fonksiyon. Bu işlevi bileşenden çağırırken verileri atamadan önce nasıl çözüleceğine dair vaatlerimi bekleyebilir miyim?

cevap

9

Telefon araması yaparken bu zincir can böylece getProfile işlevinden this.local.get("user-profile") söz dönmek zorunda her şeyden önce. Daha sonra başarı geri dönüşünde getProfile işlevinden döndürülen verileri alabilirsiniz.

getProfile(): any { 
    return this.local.get("user-profile").then((profile) => { 
     var val = JSON.parse(profile); 
     return val; 
    }); 
); 

Ek olarak ben hata app.bundle.js olsun, orada yanıtı

ngOnInit(): any { 
    this._currentUser.getProfile().then(
    value => { console.log(value) } 
    ) 
} 
+0

Merhaba alabilirsiniz bunun başarısı üzerine, en kısa sürede bir ajax yapmak gibi verileri alınamıyor: 44529 EXCEPTION: Hata: Yakalanmadı (vaatte): TypeError: undefined özelliği 'sonra' okunamıyor. – Arianule

+0

@Arianule üzgünüm cevapta bahsettim, ama aynı şeyi kod bölümünde değiştirmeyi unuttum, benim kötü. Uyarı için teşekkürler. Güncellenen kodu kontrol edin –

+0

Merhaba orada Pankaj. Kodu güncelledin mi, üzgünüm. Promise.resolve (val) iadesi boyunca bir söz vermeliyim mi? – Arianule

0

İşleviniz getProfile bir söz vermez. Hiçbir şey döndürmez. Size profil söz değişken veri ayıklamak yapabilirsiniz, sizin bileşeninde Şimdi

getProfile(): any { 
    return this.local.get("user-profile").then((profile) => { 
    var val = JSON.parse(profile); 
    return val; 
}); 

olarak değiştirin gerekir.

ngOnInit(): any { 
    this._currentUser.getProfile().then(value => { 
     console.log(value); //returns your value. 
    }