2014-04-29 backlog-cli@0.2.0をつくった
backlog-cliの0.2.0をリリース。サブコマンドでオプション省略時にhelpを出したり、issueの状態変更ができるようになった。https://t.co/JvD4PCCYJg
— bouzuya (@bouzuya) April 29, 2014
というわけで、node-backlog-cliをバージョンアップ。意外と修正は小さくて、backlog
だけでhelpを出したり、backlog issue status
を追加したくらい。これでぼくがやりたかったほかのことを実現できるので。
ちなみにつくる過程でPromises/A+を見直したら、いろいろと勘違いしていることに気づいた。
- deferじゃなくPromiseを使う。
new Promise(function(resolve, reject) { ... });
の方がES6対応が楽そう。var Promise = require('q').Promise;
でOK。 then
の戻り値はPromiseに変換される。例えばpromise.then(function() { return 1; });
で1はPromiseでラップされ1でresolveされた値を返す。なので、return
内容を気にせずthen().then()
でOK。fail
よりcatch
。基本はthen
とcatch
。then
で成否両方または成功のみ、catch
でエラーをとれる。done
やfail
はないものと考える。then
の第2引数はハマりポイント。then(onFulFilled, onRejected)
となるのだけれど、onFulFilled
で例外を投げた場合はonRejected
は呼ばれない。例外はPromiseでラップされて返される。なので、then
の戻り値をcatch()
で処理すれば良い。要するにpromise.then(onFullFilled).catch(onRejected)
とするほうが安全。
これを踏まえて、今後のコードは意識してなおしていくつもり。
ちなみに、以下の記事が良い。翻訳記事。まどろっこしいかもしれないけど、実装を通じて学べる。念のため、英語のほうの仕様にあたったけど、問題なさそう。
Promise/A+を、簡素な実装を通じて学ぶ記事、の翻訳。これは良い。 / “[JS]JavaScriptにおけるPromise/A+仕様を、チュートリアル形式で詳しく解説します - YoheiM .NET” http://t.co/Cm6jNxodmt
— bouzuya (@bouzuya) April 29, 2014