avatar

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 成員的講解

{' '}

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

New post: Broken Promises{' '} bit.ly/Xzy72M

— drewcrawford (@drewcrawford){' '} April 1, 2013

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

Broken Promises http://t.co/Vdsk7XHeol

— Mikeal Rogers (@mikeal){' '} March 31, 2013

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

Callbacks, promises and simplicity

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

powered by WebMention.io

You can skeet this post or discuss it on BlueSky, the comments will show up here.
0Likes0Replies0Mentions

Be the first one to share this article!