0

だから私はco約束を返す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) { ...

しかし、まだ運がありません。

4

1 に答える 1

1

あなたが探しているのはco.wrap機能だと思います。

let wrap = co.wrap(function* (collName) {
  let res = yield collection.findOne({});
  yield res;
});

あとは好きなように使えます

let res = wrap("Topics");
于 2016-03-03T08:39:17.113 に答える