159. promisify() を実装する

JavaScript

簡単  - accepted / - tried

まずError-first callbackを見てみましょう。

const callback = (error, data) => {
  if (error) {
    // エラーの場合
  } else {
    // 成功の場合
  }
}

上記のコールバックを最後の引数とする関数を考えましょう。

const func = (arg1, arg2, callback) => {
  
  // 非同期の処理など

  if (hasError) {
    callback(someError)
  } else {
    callback(null, someData)
  }
}

問題はもうお分かりでしょうか。promisify()を実装してください

const promisedFunc = promisify(func)

promisedFunc().then((data) => {
  // 成功の場合
}).catch((error) => {
  // エラーの場合
})

エッジケースを網羅しよう。

(80)