【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ベースの関数を、コールバック形式で呼び出せるように変換した新しい関数を返します。