所以我试图用co
包装返回promises的MongoDB方法
例如
http://mongodb.github.io/node-mongodb-native/2.0/reference/ecmascript6/crud/
我看到co
被用作:
co(function*() {
这似乎是一个匿名函数。在代码的主体中很好,但有没有办法获得内部产生的值?
例如,基本上得到co
例程的结果:
如果我能做到:
let wrap = co(function* (collName) {
let res = yield collection.findOne({});
yield res;
});
然后在其他地方
let res = wrap("Topics");
但我得到
TypeError: wrap is not a function
也试过:
co(function* wrap(collName) {
...
co.call(this, wrap("Topics"));
let wrap = co.wrap(function* (collName) { ...
但仍然没有运气。
答案 0 :(得分:0)
我认为您正在寻找的是co.wrap
功能。
let wrap = co.wrap(function* (collName) {
let res = yield collection.findOne({});
yield res;
});
然后你可以按照你想要的方式使用它
let res = wrap("Topics");