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

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

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

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

3回答

717閲覧

【JavaScript】アロー関数にアロー関数?

matsuo_basho

総合スコア88

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2022/11/15 23:12

いつも大変お世話になっております。
ネットのReactのコードを見ていて解釈の仕方がわからないコードがありました。

ReduxのActionのコードのようですが以下の通りです。

JavaScript

1export const listProducts = () => async (dispatch) => { 2 try { 3 4 dispatch({ type: PRODUCT_LIST_REQUEST }) 5 6 const { data } = await axios.get('/api/products') 7 8 dispatch({ 9 type: PRODUCT_LIST_SUCCESS, 10 payload: data, 11 }) 12 13 } catch (err) { 14 dispatch({ 15 type: PRODUCT_LIST_FAIL, 16 payload: err.response && err.response.data.message 17 ? err.response.data.message 18 : err.message, 19 }) 20 } 21}

アロー関数が連続して= () => async (dispatch) =>とありますが、
こちらはどのような働きをしているのでしょうか?

どなたか詳しい方がいらっしゃいましたらご教授いただけますと幸いです。
それではどうぞ宜しくお願い致します。

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

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

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

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

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

guest

回答3

0

ベストアンサー

listProducts は関数を返す関数です。アローを使わないで同等のコード書くとすると、例えば以下のように function を使って関数宣言および関数式を書いたものになります。

javascript

1function listProducts() { 2 3 const apiGetProducts = async function (dispatch) { 4 try { 5 ・・・ 6 } catch (e) { 7 ・・・ 8 } 9 } 10 11 return apiGetProducts; 12 13}

補足: listProductsのように関数を返す関数(または関数を引数にとる関数)のことを 高階関数 といいます。

投稿2022/11/15 23:38

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

() => 式() => { return 式; } なので、listProductsasync (dispatch) => { ...} というアロー関数を返すアロー関数です。

投稿2022/11/15 23:25

int32_t

総合スコア20878

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

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

0

Text

1ポインタのポインタである。

投稿2022/11/16 05:04

atcoderyellow

総合スコア481

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問