Wpis z mikrobloga

@babysteps: a to babel nie miał jakiegoś pluginu do zrzucania async functions do generatorów? W sumie sporo ficzerów jest już zaimplementowanych w node, a transpilacja babela jest mimo wszystko mocno kaleczona :/
  • Odpowiedz
@magic96: no właśnie te pluginy znajdują się w presecie stage-0 i one działają (na co wskazuje poprawne uruchomienie przez babel-node), natomiast gdy dodamy sobie do tego równania webpacka, to pojawia się problem (mimo, że same generatory działają, a async/await to w zasadzie syntactic sugar na to pierwsze)
  • Odpowiedz
@larvaexotech: dzięki za obszerne wyjaśnienie na temat async / await! Faktycznie miałem tu pewne braki.

Czy są jakieś korzyści z trzymania konfiguracji babel w pliku .babelrc anieżeli package.json? Z ESLintem sprawa jest prosta, bo część edytorów po prostu ignoruje konfiguracje projektu zawartą w pliku package.json, więc tutaj zawsze wrzucam to pliku .eslintrc.

Miałem zapytać o zasadność korzystania z biblioteki do Promises, ale i tutaj
  • Odpowiedz
@babysteps: Odnośnie .babelrc to szczerze mówiąc nie wiem, wiem tylko że aktualizując babela na z wersji 5.ileśtam do wersji 6.ileśtam wymaga tego pliku więc po prostu go stworzyłem i nie wnikałem dalej :)

Co do promised-mongo to wg mnie lepiej korzystać z wrappera choćby z tego powodu, że BlueBird reimplementuje funkcje dodając do nich suffix "async" nie modyfikując istniejących. Czyli nie będzie findOne tylko findOneAsync itp itd. I w mojej opinii
  • Odpowiedz
@magic96: można, ale wg mnie async/await jest najlepszym rozwiązaniem. operuje natywnie na promise, bez zbędnego zamieszania, poprawnie działa zarówno z funkcjami zwracającymi promise jak i tymi ze słowem kluczowym async. oczywiście wadą tego rozwiązania jest to, że ono nie działa ( ͡° ͜ʖ ͡°) przynajmniej nie natywnie.

typescript potrafi kompilować async/await na postać generatorów a kod jest zgodny z ES6 ale niestety ten kod nie działa
  • Odpowiedz
@magic96: bardzi sobie bankowo bo używam na codzień :)

pamiętaj, że przy deklaracji metody nie stosujesz słowa kluczowego function, sądzę że stąd może wynikać błąd. przy metodie stosujesz po prostu: async nazwaMetody() { ... kod ... }
  • Odpowiedz
@larvaexotech: możliwe, że jak się bawiłem kiedyś to zrobiłem jakiś błąd w syntaxie i miałem dziwne przekonanie, że nie działa… xD ale tak czy siak - dzięki, przyda się ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@larvaexotech: a tak przy okazji, skoro pracujesz z najnowszymi ficzerami ecmascriptu - jak radzisz sobie z wielokrotnym dziedziczeniem? Są jakieś fajniejsze rozwiązania niż mixiny albo lukier składniowy do nich?
  • Odpowiedz
@magic96: szczerze mówiąc to nawet nie wiem bo zwykle trzepie backendy w node a tam struktura jest raczej płaska bez dziedziczenia. w sumie to w niewielu przypadkach z oop wogóle korzystam, chyba tylko przy gamedevie ( ͡° ͜ʖ ͡°)
  • Odpowiedz