【Node.js24.x】Object::promisify()メソッドの使い方
promisifyメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
promisifyメソッドは、Node.js環境における非同期処理の記述をより現代的なPromiseベースに変換する機能を提供するメソッドです。このメソッドは、従来のコールバック形式で書かれた関数を、Promiseを返す新しい関数へと変更します。これにより、非同期処理のネストが深くなる「コールバック地獄」を避け、コードの可読性と保守性を向上させることが可能になります。
具体的には、promisifyメソッドは引数として受け取った関数が、Node.jsで一般的なfunction(err, data)というエラーファーストコールバック形式に従っている場合に、Promiseオブジェクトを返す関数へと変換します。変換後の関数を実行すると、元の処理が成功すればPromiseが解決(resolve)され、エラーが発生すればPromiseが拒否(reject)されます。主にfsモジュールなどのNode.js標準APIや、古いライブラリの非同期関数をPromise対応にしたい場合に役立ちます。
このpromisifyメソッドは、Objectクラスに関連する操作として言及されることがありますが、実際にはNode.jsの標準utilモジュールを通じて利用されることが一般的です。これにより、Promiseベースの非同期処理モデルを既存のコールバック形式のAPIと統合しやすくなります。
構文(syntax)
1const util = require('node:util'); 2const fs = require('node:fs'); 3 4// コールバック形式の関数をPromise形式に変換 5const readFilePromise = util.promisify(fs.readFile); 6 7// 変換されたPromise形式の関数を使用 8readFilePromise('path/to/your/file.txt', 'utf8') 9 .then(data => { 10 console.log(data); 11 }) 12 .catch(err => { 13 console.error(err); 14 });
引数(parameters)
original
- original: Function: Promise化したい元の関数
戻り値(return)
Function
Object.promisifyメソッドは、コールバックベースの関数をPromiseを返す関数に変換したものを戻り値として返します。