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

【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を返す関数に変換したものを戻り値として返します。

関連コンテンツ

関連プログラミング言語