情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsで結果として値を返す非同期的な処理を作成する

結果として値を返す非同期的な処理を作成するにはasyncモジュールのasync.constant関数やasync.ensureAsync関数を使用します。

結果として値を返す同期的な処理

まずasync.constant関数を使用して結果として値を返す同期的な処理を作成します。

var async = require('async');

var f = async.constant('xxx');

第1引数に値を指定します。

返り値として同期コールバック関数を第1引数として受け取る関数が得られます。

結果として値を返す非同期的な処理

次にasync.ensureAsync関数を使用して結果として値を返す同期的な処理を非同期的な処理に変換します。

var f = async.ensureAsync(f);

第1引数に同期コールバック関数を引数として受け取る関数を指定します。

返り値として非同期コールバック関数を引数として受け取る関数が得られます。

この関数は第1引数の関数が非同期コールバック関数を引数として受け取る関数に変換されたものです。

そのため、返り値の関数は下のように呼び出すことができます。

f(function (err, result) {
});

これにより非同期的な処理の実行が開始されます。

サンプルコード1

async-ensure-constant.js

var async = require('async');

var f1 = async.ensureAsync(async.constant(100));
var f2 = async.ensureAsync(async.constant(200));
var f3 = async.ensureAsync(async.constant(300));
var f4 = async.ensureAsync(async.constant(400));
var f5 = async.ensureAsync(async.constant(500));

async.log(f1);
async.log(f2);
async.log(f3);
async.log(f4);
async.log(f5);

console.log('start.');

使用パッケージ

  • Async.js
    npm install asyncでインストールします。

実行結果

C:\work\node>node async-ensure-constant.js
start.
100
200
300
400
500

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js