util
promisify と callbackify の 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;});callbackify と promisify は、コールバックと Promise の間の橋渡しに伴うすべての課題を簡単に処理できるようにします。
詳細については、Node.js の callbackify ドキュメント ↗ と Node.js の promisify ドキュメント ↗ を参照してください。
util.types API は、値がさまざまな組み込み型のインスタンスであるかどうかを確認するための信頼性が高く効率的な方法を提供します。
import { types } from 'node:util';
types.isAnyArrayBuffer(new ArrayBuffer()); // true を返しますtypes.isAnyArrayBuffer(new SharedArrayBuffer()); // true を返しますtypes.isArrayBufferView(new Int8Array()); // truetypes.isArrayBufferView(Buffer.from('hello world')); // truetypes.isArrayBufferView(new DataView(new ArrayBuffer(16))); // truetypes.isArrayBufferView(new ArrayBuffer()); // falsefunction foo() { types.isArgumentsObject(arguments); // true を返します}types.isAsyncFunction(function foo() {}); // false を返しますtypes.isAsyncFunction(async function foo() {}); // true を返します// .. などutil.types についての詳細は、Node.js の util.types ドキュメント ↗ を参照してください。
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=valueutil.MIMEType についての詳細は、Node.js の util.MIMEType ドキュメント ↗ を参照してください。