質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1349閲覧

Promiseを利用するメリット

shori0128

総合スコア29

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/08/15 09:09

プログラミング初心者です。
Promiseを使うメリットとは何でしょうか。

参考書を読んでも、結局は同期処理と同義のように解釈できるのですが、具体的なメリットがよくわかりません。

<例>
同期処理A → 非同期処理B

同期処理C

同期処理Cは非同期処理Bの結果を利用するとします。
その場合、Promiseを使うことで、同期処理Cは非同期処理Bの結果を待機しているわけですよね?

であれば

同期処理A

同期処理B

同期処理C

で実行するのと同義のように思えます。
処理Bを非同期で書く必要がないのに、わざわざ非同期にする具体的な理由がわかりません。
ご教示いただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

処理Bを非同期で書く必要がないのに、わざわざ非同期にする具体的な理由がわかりません。

JavaScriptの世界では、非同期でしか書けない処理がいくつも存在します。

たとえば、XMLHTTPRequestでは基本的に非同期処理となっていて、同期処理を実行しようとするとブラウザをフリーズさせることになるので、非推奨となっています。

また、のちに導入されたfetchは、(普通のブラウザ内では)非同期動作しかなく、最初からPromiseを返してきます。

投稿2017/08/15 10:28

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shori0128

2017/08/15 10:41

maisumakun 様 回答ありがとうございます。 非同期処理を同期的処理として扱う手法と考えるようにします。
guest

0

沢山imgが貼ってあるページはでてきた順番にimgを読んでいるわけではありません。
非同期に処理をして受け取ったものから順番にみせています。
全部の画像が読み終わった時点でページのレイアウトを確定したい場合など
当然promiseのような処理が必要です

投稿2017/08/15 10:43

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問