Asenkron programlama hiç böyle kolay olmamıştı

26 views
Skip to first unread message

Akif Eyler

unread,
Jul 19, 2018, 9:05:15 AM7/19/18
to java...@googlegroups.com, Gürsu Gülcü, AFSIN BUYUKSARAC
Promise.then(...) için kolay bir çözüm buldum:

Benden ders alanlar iyi bilir, kolayca anlatamadığım bir konuya yer vermem, anlatacak bir yığın konu varken... Bugünden itibaren, Promise-Response çifti ile Asenkron programlama da uzmanlık alanıma girmiş oldu :)

Birinci örneğin cevabı anında dönüyor:
navigator.getBattery()  bu kadar yazınca, Inspector gerisini tamamlıyor
.then(y => display(y), e => reportError(e)); //BatteryManager
then()'den sonra iki fonksiyon var: cevap olumlu ise diplay, değilse error çağrılacak

    if (f instanceof Promise) { //nothing to display in f
        f.then(y => display(y), e => reportError(e));
        out.innerText = "A Promise was made - takes time";
        out.style.backgroundColor = "cyan"; return;
    }

İkinci örnek iki aşamalı:
Önce GitHub'dan bir text   fetch("https://maeyler.github.io/JS/hard/test/test.txt") 
.then(y => display(y), e => reportError(e))  //Response
Bu kısım yukarıdaki ile aynı olduğu için otomatik -- Promise atlanıyor ve Response gösteriliyor

ikinci aşamada çağrılan text() metodu yeni bir cevap üretiyor:
.then(y => display(y), e => reportError(e)); //String
Şimdi Chrome konsolunda sample.innerText=co yazarsanız metin aynı sayfada çıkar

Sihir gibi bir şey, belki en başından böyle olmalıydı...

__Akif Eyler__



On Thu, Jul 19, 2018 at 1
​3​
:05
* asenkron yazılım için en önemli araç Promise:
mesela  navigator.getBattery() ya da fetch(URL)  komutları Promise döndürüyor
Bunların değerine p.then(...) ile ulaşmanın yolunu arıyorum
fetch() için cevabı biliyorum ama nasıl genelleştirelim?
 
asenkron cevap.png

Akif Eyler

unread,
Aug 2, 2018, 5:10:45 AM8/2/18
to java...@googlegroups.com
Bugün V2.0 çıktı -- Inspector artık "class hiearchy" gösteren bir yapı kazandı

.then(y => display(y), e => reportError(e))
Buna tekrar bakınca, iki hafta önce callback kavramını hiç anlamadığım ortaya çıktı :)

Doğrusunu yazayım ki arşivde bulunsun:
fetch("
...").then(display, reportError)

Yeni haliyle sanırım JS mantığı çok iyi anlaşılıyor...
Bana hayret veren diğer örnekleri de yazayım:

  let [c, v] = toCV(i)  
  //toCV returns an array of two numbers

  let copy = [...names]


Tuncay'ın yorumunu merakla bekliyorum

__MAE

inspector V2.0.png
Reply all
Reply to author
Forward
0 new messages