试图thunkify一个基于callback的函数来使用发电机(良率),不起作用
我正在尝试使用生成器同步调用koa中的常规callback样式函数。 以下方法工作:
var res = yield function (cb) { myDaoObject.load(function (err, res) { cb(err, res); }) };
所以我不会用适当的库应用来代替它:
var ld = thunkify(myDaoObject.load); var res = yield ld();
而这是行不通的。 这不应该是一回事吗?
其实你几乎不需要在这里使用thunkify
,因为你的函数没有参数。 你可以(而且应该)简化它
yield function(cb) { myDaoObject.load(cb); }
甚至还可能进一步
yield myDaoObject.load;
这将工作如果load
不是一个使用this
方法。 你将不得不把它bind
到你想要的对象:
yield myDaoObject.load.bind(myDaoObject);
同样的问题是你thunkify
电话 – 这是很好的(尽pipe不必要)。