この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - JavaScript コーディング問題
54. Thunk平坦化
解答例:
const flattenThunk = (thunk) => (callback) => { const handle = (error, data) => { if (error) { return callback(error, null); } if (typeof data === "function") { data(handle); return; } callback(null, data); }; thunk(handle);};
Explanation:
flattenThunk関数は、thunkを引数とし、Callback関数を返します。handle関数は、Thunkまたはanyを取るCallback関数です。これは、渡されるネストされたキャップ名をトップレベルにフラットにします。- 最初に、
errorが渡された場合、callback関数を呼び出します。 - そうでない場合は、渡された
dataがfunctionかどうかを確認します。そうである場合、data(handle)を呼び出します。これは、渡された関数(thunk)がdataを返すThunk関数であるため、ネストされたコールバックが存在するためです。そうでない場合は、単一の値であるため、callback(null, data)を呼び出します。