Node非同期コントローラAync

1662 ワード

nodejsは非同期の書き方に基づいていますが、データベースを調べたら前の関数の戻り値をパラメータにしなければならない場合があります.前にappiを書く時に私がfor循環検索データベースが必要になりました.そして配列の中に置いて、先端に戻ります.最後にAsync.GitHubアドレスを使いました.
Ayncをインストールするnpm install asyncシリアルには関連がありません
いくつかの関数や方法は順次実行しますが、彼らの間には連絡がなく、ファイルを書きたいです.書き終わったら、ユーザーのようにメールを送ります.この両者の間には必然的な連絡はありませんが、ファイルを作成してからメールを送る必要があります.asyncにはこの流れを実現する方法があります.コードは下記の通り実現されます.
var async = require('async');
console.time('series');
async.series({
    one: function(callback) {
        callback(null, 'one');//callback('i am err','one');    
    },
    two: function(callback) {
        callback(null, 'two');

    },
}, function(error, result) {
    //    
    console.log('error: ' + error);
    console.log('result: ' + result);
    console.timeEnd('series');
});
シリアルに関連があります
複数の関数または方法が実行され、各ステップの実行には前のステップの結果が必要です.パラメータとしてはシリアル待ちがあります.asyncにはwaterfallがあります.このシーンを実現できます.
var async = require('async');
console.time('waterfall');
async.waterfall([
    function(callback) {
        callback(null, 'one');
    },
    function(onearg, callback) {
        callback(null, onearg + '>>>two');
    },
    function(twoarg, callback) {
        callback(null, twoarg + '>>>three');
    },
    function(threearg, callback) {
        callback(null, threearg + '>>>four');
    }
], function(error, result) {
    console.log('error: ' + error);
    console.log('result: ' + result);
    console.timeEnd('waterfall');
});
引き続き勉強中です