0

私は機敏性を理解するのに苦労しています.2つの質問があります:

1 -- 以下に小さなテスト コードを示します。これは、nimble のオンライン チュートリアルからほぼそのままコピーしたものです。複雑な非同期関数は使用しませんでしたが、簡単にするために console.log を使用しました。

var nimble = require('nimble');
nimble.series([
    function(cb) {
        console.log("first");
        cb();
    },
    function(cb) {
        console.log("second");
        cb();
    }
]);

約束どおりに動作しますが、コールバック (cb) のポイントは何ですか? コードから、シリーズのどちらの関数にも cb として何も渡さないようです。

次に、コードの修正版を試しました。基本的に、すべてのコールバックを削除します。

var nimble = require('nimble');
nimble.series([
    function() {
        console.log("first");
    },
    function() {
        console.log("second");
    }
]);

悲しいことに、「最初」のみが出力され、「2番目」は出力されないため、どこかが間違っています。理由はわかりません。今、私はそのコールバックが実際に何であり、なぜそれを持たなければならないのかについて非常に混乱しています。

2 -- nimble のチュートリアルによると、アンダースコア (_) を便利に使用できるようです。オンラインで直接コピーされた次のコードを試しましたが、 _ が定義されていないと言われました..

var nimble = require('nimble');
_.series([
    function (callback) {
        setTimeout(function () {
            console.log('one');
            callback();
        }, 25);
    },
    function (callback) {
        setTimeout(function () {
            console.log('two');
            callback();
        }, 0);
    }
]);

おそらく私は何か間違ったことをしました。軽快に _ を使用する前に、underscore.js をインポートする必要がありますか? しかし、nimble によると、そのセールス ポイントの 1 つは、サイズが小さく、async やアンダースコアをインポートする必要がないことです。そしたらここでまた迷子に・・・

4

1 に答える 1

0

質問1:

nimble.series() は、各関数で cb() を呼び出して、次の関数に進むように指示する必要があります。そのため、最初の関数の cb() を取り出した後に 2 番目の関数が実行されませんでした

質問2:

はい、nimble で行ったのと同じように、使用する前にアンダースコアをインポートする必要があります

var _ = require('アンダースコア');

于 2014-04-20T11:48:27.463 に答える