2
Taming the asynchronous beast with ES7 (pouchdb.com)
IngramChen 積分 0 編輯於

這個就要問寫 C# 的人了,不曉得 await/async 這種語法實戰起來是如何。

我已經習慣用 future/promise Monad 來操作非同步的程式,這種寫法有點繁複,但一眼就看的出來哪裡是未來才會發生,哪裡是當下發生。他文中舉的 .forEach(async function...) 就是一個很容易忽略的陷阱,而且目前的 spec 也沒辦法處理 concurrent loop。如果 IDE/jslint 能幫上忙的話就不會是問題。

不過,我目前前端的程式,90% 以上吧,大多是一個接一個做完,少數才會有同時 request,然後一起等結果。(其實這也是一種 smell,這種寫法用戶要等比較久)

es7 還遙遙無期,不過 dart 下個月就有 async 可玩囉,到時候拿 kaif 來開刀,哈哈。

siuying 積分 1

我覺得最大問題是這些 async function 有一個隱藏的 contract , JavaScript 又不像 typed language 一樣會提醒你用錯了,有問題一定抓破頭才找到原因。

es7 今天就可以用了,只要有 Babel 等工具,但問題是它們還是 moving target ,不知甚麼時候會改,現在就用真的要有覺悟

haocheng 積分 1

之前有追 AngularDart 0.1x 的經驗,覺得在正式專案用這麼新又一直在修改 spec 的東西上會搞死自己啊... Orz

IngramChen 積分 1

yep 我被搞死了~~ 真是自找苦吃。

沒有穩下來的東西真的只適合,嗯,週末玩個一下

IngramChen 積分 0

也許 TypeScript 會好一點?C# 那邊已經寫一段時間了,應該有不少經驗,只是說 C# 也是 type safe。

話說回來,這個年頭好像用什麼都要有覺悟...