コンテンツにスキップ

util

promisify/callbackify

promisifycallbackify の API は、Promise ベースのプログラミングモデルとコールバックベースのモデルとの橋渡しを行う手段を提供します。

promisify メソッドは、Node.js スタイルのコールバック関数を受け取り、それを Promise を返す非同期関数に変換します:

import { promisify } from 'node:util';
function foo(args, callback) {
try {
callback(null, 1);
} catch (err) {
// エラーは最初の引数を介してコールバックに送信されます。
callback(err);
}
}
const promisifiedFoo = promisify(foo);
await promisifiedFoo(args);

promisify と同様に、callbackify は Promise を返す非同期関数を Node.js スタイルのコールバック関数に変換します:

import { callbackify } from 'node:util';
async function foo(args) {
throw new Error('boom');
}
const callbackifiedFoo = callbackify(foo);
callbackifiedFoo(args, (err, value) => {
if (err) throw err;
});

callbackifypromisify は、コールバックと Promise の間の橋渡しに伴うすべての課題を簡単に処理できるようにします。

詳細については、Node.js の callbackify ドキュメントNode.js の promisify ドキュメント を参照してください。

util.types

util.types API は、値がさまざまな組み込み型のインスタンスであるかどうかを確認するための信頼性が高く効率的な方法を提供します。

import { types } from 'node:util';
types.isAnyArrayBuffer(new ArrayBuffer()); // true を返します
types.isAnyArrayBuffer(new SharedArrayBuffer()); // true を返します
types.isArrayBufferView(new Int8Array()); // true
types.isArrayBufferView(Buffer.from('hello world')); // true
types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true
types.isArrayBufferView(new ArrayBuffer()); // false
function foo() {
types.isArgumentsObject(arguments); // true を返します
}
types.isAsyncFunction(function foo() {}); // false を返します
types.isAsyncFunction(async function foo() {}); // true を返します
// .. など

util.types についての詳細は、Node.js の util.types ドキュメント を参照してください。

util.MIMEType

util.MIMEType は、MIME タイプ をより簡単に扱い操作するための便利なメソッドを提供します。例えば:

import { MIMEType } from 'node:util';
const myMIME = new MIMEType('text/javascript;key=value');
console.log(myMIME.type);
// 出力: text
console.log(myMIME.essence);
// 出力: text/javascript
console.log(myMIME.subtype);
// 出力: javascript
console.log(String(myMIME));
// 出力: application/javascript;key=value

util.MIMEType についての詳細は、Node.js の util.MIMEType ドキュメント を参照してください。