0

私は Firebase ノード モジュールを使用しており、そのコールバックをサンクに変換して、Koa で使用できるようにしようとしています。

これは、Firebase ドキュメントによる元のイベント リスナー コールバックです。

projects.on('value', function (snapshot) {
  console.log('The read succeeded: ' + snapshot.val());
}, function (errorObject) {
  console.log('The read failed: ' + errorObject.code);
});

これは、Koa プロジェクトに追加したい場所です。

function *list() {

  // Get the data here and set it to the projects var

  this.body = yield render('list', { projects: projects });
}

誰でもそれを行う方法を知っていますか? 成功せずにthunkify、thunker、およびthuを試しました...

4

1 に答える 1

1

標準ノード関数をサンクに変換しようとしているため、thunkify などは使用できないと思います。firebase api は、標準の node.js コールバック シグネチャに従っていません。

fn(param1, parm2,.., function(err, result){});

thunkifyが期待している。

これでいけると思います

var findProjectsByValue = function(value){
    return function(callback){
        projects.on(value, function(result){
            callback(null, result);
        }, function(err){
            callback(err);
        })            
    }
};

その後、あなたはそれを消費します

var projects = yield findProjectsByValue('value');

または、残りの api 呼び出しを行うこともできます。これは、あなたが望むものだと思います。firebase apiは、イベント化されたシナリオ、socketioなどに適しているようです

于 2014-08-29T22:20:15.863 に答える