New Control Flow in Nodejs?

這應該不算新聞了 ;p

Promises 不是什麼新東西了,無論是前端 Javascript 或server-side node.js 也早就有不少函式庫可以用,不過把原本需要函式庫才能用的功能變成原生支援也算是一件大事。

有關 Promises 的來龍去脈跟背景介紹,可以直接參考 othree 的好文。至於 chrome 的實作,主要是照著 Promise/A+ 的規範,然後 api 的設計類似 rsvp.js

目前 Chrome Canary & Firefox Nightly 中都已經開始(部分)支援 Promises,不過大家也知道前端的東西基本上從出現到可以開始用都需要一段漫長的歲月,所以就先參考一下就好...XDD

node.js

把話題拉回到 nodejs 上,關於 callback or promises 哪個是比較好的 control-flow 常常出現在討論串中,之前也曾經為了這個戰了好幾輪,不過現在 promises 也變成原生支援之後,說不定願意嘗試的開發者也會變多!?

目前 nodejs core 中還是以 callback 作為主要的方式,如果真的要改變的話影響的層面會非常嚇人,所以即便真的在未來有可能改變,應該也還有一段很長的路要走。不過如果是想在自己的專案或模組中改用 promises,這應該就簡單許多了。

目前 Chrome promises 似乎是在 Blink 中實作的(不是v8),不過根據 Google Chrome Team 的說法,之後會在 v8 中實作,取代 Blink。因為 nodejs 是跟著 v8 走的,所以等到實作之後自然就可以直接用了(短期之內還是得用--harmony-promises來啟用),值得期待 ;p

update

最近 LinkedIn 也丟出一篇文章來介紹他們怎麼用 Promises 改寫他們的後端。

Ferrari Lee

Read more posts by this author.

Subscribe to Ferrari != Ferrari

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!