React Native projesinde tuhaf bir yerde takıldım. Bir fonksiyon içerisinde işlem yaptırıp return olarak işlem sonucun yazıyorum, çağırdığımda düzgün geliyor.

Fakat async olarak bir kütüphaneden çektiğim cihaz batarya durumunu return ettirdiğimde gelmiyor. Tip dönüşümü falan da yapıyorum bana mısın demiyor.

Fonksiyon içerisinde console a yazdırdığımda yazıyor, ama return ile göndermeye çalıştığımda gitmiyor çok saçma değil mi?

Yani geliyor da şöyle bir şey geliyor {"_40": 0, "_55": null, "_65": 0, "_72": null}

Sanırım asenkron çalışan bir fonksiyon içerisinden değer çektiğim için oluyor. Değeri setState ile dışarıya alıp oradan okuyunca sorun yok ama fonksiyonu asıl kullandığım yerde state ve class yapısı yok. Nasıl çözebilirim?

Ekran paylaşsam bakabilir miyiz?

 

fonksiyonunu async yapabilirsin ya da promise donebilirsin, olmadi callback fonksiyon alir onu cagirirsin. en kolayi async await kullanmak olur muhtemelen.

lemmiwinks

Aslinda kullandigim kutuphane promise donuyor zaten. Oradaki degeri okuyup fonksiyon icindeki bir degiskene atiyorum, sonra o degiskeni return ediyorum.

Fonksiyonu cagirdigimda async await kullanmazsam bos deger geliyor. Degiskeni ilk oyle atadim çünkü. Kullaninca da yukaridaki gibi bir sey geliyor. Cozemedim hala

ananiyimioguz

code snippet ya da repon github'da ise link atabilir misin ? Kodu görmeden gerçekten ne cevap verilse havada kalacak

allezz

teşekkürler, @lemmiwinks ile baktık ama promise ile okunan bir değeri hemen dışarı gönderebilmek için kullanılan fonksiyonun ve çağrılan yerin de async olması gerekiyormuş.

Fakat projede redux yanında saga kullanıldığı için ve saga async kullanımını desteklemediği için (aslında kendi yield kavramı da async çalışıyor sanırım ama async fonksiyon yazamıyoruz içerisine), saga'nın js dosyasında async işlem yaptıramadık. Haliyle oradaki istekler içerisine okuduğum değeri ekleyemedim.

Direkt işlem yapabilmek için bütün o istek işlemlerini, promise kullanırken then içine taşıyarak çözebileceğimi söyledi ama o da pek uymadı yapıya. Mecbur o sayfadaki fonksiyonlara, ekranların js'inin olduğu yerde, yani class ve state yapılarının olduğu bir yerde değişkeni çağırıp parametre olarak göndererek çözdüm. Saga içinde oluşturabilseydim direkt isteklerin payloadlarına yapıştıracaktım değişkeni aslında yapmak istediğim oydu ama diğer türlü de iş görüyor artık ona çevirdim ne yapalım :)

ananiyimioguz
1

mobil görünümden çık