この解答例は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関数を呼び出します。
  • そうでない場合は、渡された datafunctionかどうかを確認します。そうである場合、 data(handle)を呼び出します。これは、渡された関数(thunk)が dataを返すThunk関数であるため、ネストされたコールバックが存在するためです。そうでない場合は、単一の値であるため、 callback(null, data) を呼び出します。