[]

JS bilen online birisi var mı aramızda?

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  (20.08.21 11:16:04) 
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  (20.08.21 11:42:01 ~ 11:43:03) 
code snippet ya da repon github'da ise link atabilir misin ? Kodu görmeden gerçekten ne cevap verilse havada kalacak


  • allezz  (20.08.21 23:14:02) 
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  (21.08.21 14:41:39 ~ 14:46:00) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.