sql >> データベース >  >> NoSQL >> Redis

JavaScriptデザインパターン-不要な非同期性への対処

    まだ同期パラダイムで関数を記述しているため、非同期に苦労しています。

    非同期では、イベントにコールバックをアタッチする必要があります。 get_latest_results()のような非同期関数からの結果を期待するべきではありません 、ただし、結果の準備ができたときに呼び出される引数としてコールバック関数を渡す必要があります。コールバックは、結果に対して実行する必要があるすべてのことを実行します:

    var get_latest_results = function (feedId, readyCallback) {
        client.get('feed:' + feedId + ':latest', function (err, res) {
            var latest_reading_key = res.toString();
            client.hgetall(latest_reading_key, function (err, res) {
                readyCallback(res);                           //--- Trigger Callback
            });
        });
        // how do I specify a return value for this function? //--- You don't
    }
    

    次に、次のように関数を呼び出すことができます:

    get_latest_results(1000, function (result) {
       //--- Do whatever needs to be done with the latest result...
    });
    



    1. 時間範囲別のMongoDB.NETドライバーグループ

    2. レール/ルビーでredisを使用する場合のNestとredis-namespacegemsの平均の違いは何ですか

    3. MongoDB-すべてのアイテムをループせずにJavaでコレクションをコピーします

    4. MongoDBのドキュメントの一括更新