Wpis z mikrobloga

Nienawidzę JavaScriptu za wiele jego głupich elementów, które już kiedyś omawiałem, ale jedno kocham w nim niezmiernie i życzę innym językom, by zaadoptowały to:

Promise <3

Nic tak życia nie ułatwia jak ten ociekający miodem ficzur ()

#programowanie #javascript #ihatejavascript
  • 26
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wytrzzeszcz: pomyśl o Promise jak o remedium na callback-in-callback. Pacz:

function promiseA(duration){
return new Promise(function(resolve, reject){
setTimeout(resolve.bind(null,
  • Odpowiedz
@wytrzzeszcz: nadaje się to na chainowanie wykonywania zbioru asynchronicznych funkcji w kolejności jaką ustalisz z przekazywaniem wyniku aktualnie wykonanej do następnej w kolejce. przetwarzanie tekstu/danych można na tym zrobić na przykład.
  • Odpowiedz
@PsichiX:

W #csharpTaski oraz async / await, które doskonale się do tego nadają i mają całkiem przyjemną składnię.

W #cpp jest std::promise i std::future, które, afaik, też pozwalają realizować ten pattern. Nie wiem, jak ze
  • Odpowiedz
@PsichiX: to prawda, chociaż czasem pozwala na jakiś fajny myk. Swoją drogą zachodzę w głowę, dlaczego nie powstał jeszcze język, który byłby takim coffee scriptem dla c++.
  • Odpowiedz
Nic tak życia nie ułatwia jak ten ociekający miodem ficzur ()


@PsichiX: To ciekawe czemu w następny wersjach języka dodano generatory a w przyszłości zostaną dodane funkcje async.

  • Odpowiedz
@PsichiX: Kuleje niestety, bo życzysz innym językom tego wspaniałego ficzera, który tylko rozwiązuje problem nieznany w socjaliźmie .. tfu .. w innych językach (oczywiście nie wszystkich).

Cały problem wziął się z tego, że w JS jest tylko jeden wątek i przez to kod asynchroniczny zamienia się w spaghetti callbacków. Promisy trochę łagodzą ten problem, ale w językach z wątkami w ogóle nie trzeba się tak męczyć. Kod, który np. czeka
  • Odpowiedz
@informatyk15000k: co z tego ze w innych jezykach jest wielowatkowosc. W JS jako takim tez jest ale po co jej uzywac? Jak widze ludzi ktorzy uzywaja wielowatkowosci w sposob nieprawidlowy to mi sie noz w kieszeni otwiera. A ci co potrafia uzyc wielowatkowosci w sposob prawidlowy to i w JS beda potrafili osiagnac to samo.
  • Odpowiedz
napisałem tylko, że promisy to sposób na bardziej elegancką obsługę asynchroniczności niż przy pomocy callbacków (CPS).


@informatyk15000k: hmm nie wiem jak mozna bylo stosowac callbacki bez promisow. Jak sam sie uczylem o callbackach to stworzylem sobie sam promisy i z nich korzystalem. Myslalem ze wszyscy tak robia bo nie jest to zaden wynalazek. W JS po prostu sie tak pisze.
  • Odpowiedz
@karer: No to chyba nie masz za dużo doświadczenia. Promisy w js są popularne dopiero od paru lat.
Generatory i funkcje async/await to pieśń przyszłości - pozwolą na pisanie kodu, który wygląda na zwykły sekwencyjny.
Żadne z tych mechanizmów nie są nowością, call/cc jest w scheme, a funkcje async/await na przykład w c# i clojure (core.async).
  • Odpowiedz
Promisy w js są popularne dopiero od paru lat.


@informatyk15000k: jak dla mnie nie sa popularne nawet dzis. Raczej sa ciekawostka tak samo jak callbacki. A dokladnie jest to proba uzywania JS tak jak innych jezykow.
  • Odpowiedz