0

我正在使用 Firebase 节点模块并尝试将其回调转换为 thunk 以便能够在 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 等,因为他们正试图将标准节点函数转换为 thunk。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 回答