util.promisify

関数の概要

util.promisifyは、Node.jsで非同期処理を行う際にコールバック関数をPromiseを返す関数に変換するためのユーティリティ関数です。これにより、古いコールバックスタイルの関数をPromiseを扱う新しいスタイルに変換することができます。

パラメータの説明

引数 用途
original Function コールバックスタイルの非同期関数

戻り値

util.promisifyはPromiseを返す新しい関数を返します。この関数は非同期であり、元の関数の結果やエラーをPromiseとして扱います。

使用例

例1: コールバックスタイルの関数をPromiseを返す関数に変換


const fs = require('fs');
const { promisify } = require('util');

const readFileAsync = promisify(fs.readFile);

readFileAsync('file.txt', 'utf8')
  .then(data => console.log(data))
  .catch(err => console.error(err));

例2: setTimeoutをPromise化して非同期処理を扱う


const { promisify } = require('util');

const setTimeoutAsync = promisify(setTimeout);

setTimeoutAsync(2000, 'done')
  .then(result => console.log(result));

関連する関数

  • util.callbackify: Promiseをコールバック関数に変換する
  • util.promisify.custom: カスタムプロパティを持つPromise関数を作成する

まとめ

util.promisifyは、コールバックスタイルの関数をPromiseを返す新しい関数に変換するための便利なユーティリティです。非同期処理を簡単に扱うことができるが、一部の古いライブラリや関数ではうまく動作しない場合があるので注意が必要です。