abdurrahmanekr / bana-istedigini-sor

Yeni paylaştığım yazılardan haberdar olmak için bloguma abone olun:
https://avarekodcu.com
12 stars 1 forks source link

AsyncStorage Kullanımı #39

Closed guvenakcoban closed 6 years ago

guvenakcoban commented 6 years ago

Merhabalar,

Bir helper class'ı oluşturup oradan loginde tanımladığım user_token değerini çekmek istiyorum fakat promise döndürmenin dışına çıkamadım. Aşağıda denediğim yöntemlerden birisini inceleyince daha iyi anlayacaksınız. Bunu nasıl yapabilirim? (Async-await ile de işe yaramadı)

//Helper.js

class UserInfo {
 getToken() {
  const token = AsyncStorage.getItem('user_token');
  return token;
 }
}

//Component.js const token = UserInfo.getToken();

abdurrahmanekr commented 6 years ago

AsyncStorage kullanırken bir async method kullanıyor olmalısınız. getToken şöyle olmalı:

class UserInfo {
    async getToken() { // async tanımlı dikkat
        const token = await AsyncStorage.getItem('user_token');
        return token;
    }
}

Çağırdığınız yerde de promise döndürdüğü için bu şekilde kullanmalısınız

UserInfo.getToken().then(res => {
    var token = res;
    // işlemler
})

Not: AsyncStorage asenkron olduğu için promise kullanmak zorundasınız

guvenakcoban commented 6 years ago

Tokena .then dışından erişim sağlamam mümkün değil mi? Servera sorgu yaparken token kullanacağım. Helper class yaratmak kullanmak istiyorum. Örneğin:

async getUserId() {
 const token = await AsyncStorage.getItem('user_token');
 const data = Api.get('server?token=' + token);
 return data;
}

.then() kullanmadan mümkün değil sanırım?

abdurrahmanekr commented 6 years ago

Sonuçta asenkron bir işlem yapıyorsunuz. Token'ı alırsınız zaten o şekilde ama siz sunucudan veriyi döndürmek istiyorsunuz herhalde. Yine de o şekilde olmalı.