卡夫与卡夫卡 – 不能产生kafka.connect()

我是Koa的新手,但是设置了一个使用Kafka的应用程序。 我正在使用kafkaesque( https://github.com/pelger/Kafkaesque )。 我尝试了yield* kafkaesque.tearUp() 。 结果:

 cb(err); ^ TypeError: undefined is not a function 

我也尝试过kafkaesque.tearUp(function *() {...})但是这也不起作用 – 只有函数()风格的callback工作。 以Koa的方式处理这些types的例子是否可能? 如果需要,我可以处理callback,但现在不能使用代码工作,因为我需要在Kafka连接(kafkaesque.tearUp)和主题设置(kafkaesque.poll)之后再调用yield next

我终于能够通过使用“thunking”获得kafkaesque的工作:

 function tearUpThunk(kafka) { return function(callback) { kafka.tearUp(callback); } } function pollThunk(kafka, options) { return function(callback) { kafka.tearUp(options, callback); } } yield tearUpThunk(kafka) //Previously kafka.tearUp(function() { yield pollThunk(kafka, options); // kafka.poll(options, function() { etc. 

我只需要确保每个函数以这种方式返回一个callback。 感谢http://strongloop.com/strongblog/node-js-express-introduction-koa-js-zone/解释这个和其他Koa模式!

thunkify节点库也可以使这更容易( https://github.com/visionmedia/node-thunkify )。