Taming the asynchronous beast with ES7
(pouchdb.com)
這個就要問寫 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 ,不知甚麼時候會改,現在就用真的要有覺悟
IngramChen
積分 0
也許 TypeScript 會好一點?C# 那邊已經寫一段時間了,應該有不少經驗,只是說 C# 也是 type safe。
話說回來,這個年頭好像用什麼都要有覺悟...