Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

序文: Promiseとは何か? #12

Closed
azu opened this issue May 4, 2014 · 4 comments
Closed

序文: Promiseとは何か? #12

azu opened this issue May 4, 2014 · 4 comments
Milestone

Comments

@azu
Copy link
Owner

azu commented May 4, 2014

一番最初のPromiseとは何かについて

@azu azu added the new-section label May 4, 2014
@kyo-ago
Copy link
Sponsor

kyo-ago commented May 8, 2014

想定ユーザが知りたいです。
(どの程度の前提知識か)

@azu
Copy link
Owner Author

azu commented May 8, 2014

@kyo-ago あんまりちゃんと考えてないですが、
既にJavaScript(not jQuery)を使ったことがある程度あって、
Good Parts or JavaScriptパターン or サイ本 or パーフェクトJavaScript辺りのどれかは読んだことある感じかなー。

ES5の機能も積極的に使ったことはなくても、存在は知ってるぐらいのレベルとなってる気がします。
普通の書籍に比べると若干高めな気がしますが、Promise以外については他のもので理解してくださいねというスタンスで書いてた気がします。(別に売り物じゃないので多少ハードル上げても問題ない)

@kyo-ago
Copy link
Sponsor

kyo-ago commented May 8, 2014

了解しましたー

@azu azu modified the milestone: 1.0.0 May 9, 2014
@azu
Copy link
Owner Author

azu commented Jun 1, 2014

内容

Promiseとは何かの簡単な概略を紹介する。

  • PromiseはJavaScriptだけじゃない
  • Promiseは非同期処理の結果を表すオブジェクト
    • 成功と失敗のコールバック関数を登録して使う
  • つまり非同期処理に対するインターフェースを扱う仕様、そのためPromiseを学ぶ事で非同期処理のパターンを学ぶことができる?

単純なコールバックに比べた場合

Node.jsの場合、非同期処理のコールバック関数は第一引数にerrorを渡し、その有無によって処理が成功か失敗かを判定するという手法が取られています。

function callback(error,res){

}

ただし、これは仕様ではなく、コーディングルール的なものであるため、強制力があるわけではありません。

Promiseはこの非同期処理を表すオブジェクト(promiseオブジェクト)を導入する事で、
そのpromiseオブジェクトに沿ったインターフェースで処理する事を強制できます。
(単純に言えば、用意されてるメソッドを使えという話)

つまり、Promiseという統一されたインターフェースがあることで、
そのインターフェースにおける非同期処理のパターンが形成されている。

Promiseを学ぶ事で複雑な非同期処理等を上手くパターン化できるというのが、Promiseを使う理由?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants