Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

util

最終更新 Markdown で表示Agent セットアップ

promisify/callbackify

Node.js の promisifycallbackify は、Promise ベースのプログラミングモデルとコールバックベースのモデルをつなぐ API です。

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

import { promisify } from "node:util";

function foo(args, callback) {
	try {
		callback(null, 1);
	} catch (err) {
		// Errors are emitted to the callback via the first argument.
		callback(err);
	}
}

const promisifiedFoo = promisify(foo);
await promisifiedFoo(args);

同様に、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()); // Returns true
types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns 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); // Returns true
}
types.isAsyncFunction(function foo() {}); // Returns false
types.isAsyncFunction(async function foo() {}); // Returns true
// .. and so on

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);
// Prints: text

console.log(myMIME.essence);
// Prints: text/javascript

console.log(myMIME.subtype);
// Prints: javascript

console.log(String(myMIME));
// Prints: application/javascript;key=value

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

役に立ちましたか?