この解答例は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)
を呼び出します。