Callback or Promises

最近nodejs社群對於核心介面的寫法突然湧起一股討論, 應該是下面這篇文章起的頭 ;p

Callbacks are imperative, promises are functional: Node’s biggest missed opportunity

主要是提到promises的規範能夠更好的來處理非對稱的程式,Promises這東西之 前只稍微看過,一來是目前好像存在不只一種的規範,另外我一直到目前也實在不很瞭解它真正的用法,不過有興趣的Google一 下應該也可以找到不少說明。不過概念類似根據執行的狀態(unfullfilled, resolved, rejected)然後執行對應的程式

  1. JavaScript异步编程的Promise模式
  2. Promises/A
  3. Asynchronous Control Flow with Promises
  4. A tool for making and composing asynchronous promises in JavaScript

有興趣的話,可以看一下spec成員的講解

Promises, Promises from Domenic Denicola

然後就出現幾篇不同觀點的文章

nodejs社群成員有出來提一下不同的看法,也就是為什麼目前是採用callback的方式。蠻有趣的是,原來之前nodejs core是包含promise的,不過後來被拔掉了)

然後原作者又發了一篇新文,回應前面幾位作者的論點,另外也特別舉例子說明其實Promise也是可以很簡潔的。

Callbacks, promises and simplicity

因為對promise不夠了解,所以也不好多說些什麼,不過目前我也認同@mikeal所說的,callback的簡單明瞭是nodejs module可以蓬勃的原因之一,概念上也比較容易了解(至少對我而已是這樣沒錯啦),不過如果promise真的對於開發能帶來更好的結果的話,相信開發者也會逐漸轉換的吧(這算是開源世界的好處嘛(炸

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!