Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Object::callbackify()メソッドの使い方

callbackifyメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

callbackifyメソッドは、Promiseを返す非同期関数を、標準的なエラーファーストコールバック形式の関数に変換して返すメソッドです。Node.jsのutilモジュールに属しており、主に、Promiseベースで記述された現代的な非同期関数と、エラーファーストコールバック形式を期待する既存のAPIやライブラリとの連携を容易にするために使用されます。

このメソッドは引数としてPromiseを返す関数を受け取ります。例えば、asyncキーワードで定義された関数が該当します。callbackifyが返す新しい関数は、元の関数と同じ引数を受け取りますが、最後の引数としてコールバック関数を追加で受け取る形式になります。

変換された関数が実行され、内部のPromiseが正常に解決された場合、コールバック関数は第一引数にnull、第二引数にPromiseの解決値を渡されて呼び出されます。一方、Promiseがエラーで拒否された場合は、コールバック関数の第一引数に拒否理由であるエラーオブジェクトが渡され、第二引数はundefinedとなります。これにより、Promiseの非同期処理の結果を、コールバック形式で一貫して処理できるようになります。非同期処理のスタイル変換に特化した、柔軟な互換性を提供するユーティリティです。

構文(syntax)

1const util = require('node:util');
2
3async function promiseFunction(arg1, arg2) {
4  if (arg1 === 'error') {
5    throw new Error('An error occurred');
6  }
7  return `Success with ${arg1} and ${arg2}`;
8}
9
10const callbackFunction = util.callbackify(promiseFunction);
11
12callbackFunction('value1', 'value2', (err, result) => {
13  // Callback is called with (error, result) signature
14});

引数(parameters)

original

  • original: Function: コールバック形式に変換したい元の関数。この関数は、Node.jsの慣習に従って、最初の引数としてエラーオブジェクトを受け取り、後続の引数として結果を受け取るコールバック関数を期待するものとします。

戻り値(return)

Function

Promiseベースの関数を、コールバック形式で呼び出せるように変換した新しい関数を返します。

関連コンテンツ

関連プログラミング言語