产量显然不适用于猫鼬

时间:2016-01-26 16:27:30

标签: javascript node.js mongodb ecmascript-6

我尝试使用es6 yield功能对 mongodb 进行同步查询,当我在我的测试中调用我的功能时,这显然是不起作用。

我的功能代码如下:

'use strict';

let Notifications, lodash;

lodash = require('lodash')

Notifications = require('../../api/notifications/notifications.model');

function *syncQuery (email, kind, notificationIds) {
  let ids, query, remains;
  query = {
    userEmail: email,
    'notifications.kind' : kind
  };
  return yield Notifications.findOne(query, {}, {lean: true}, (err, usr) => {
    let toNotify;

    if (err) {
      console.log('Error:', err);
      reject(err);
    }
    toNotify = lodash.difference(notificationIds, usr.notifications.id);
    return toNotify;
  });
}

module.exports = syncQuery;

,我的模块规格为:

  it('should be synchronous', done => {
    let remains = syncQuery(n.user, 'budget', [9, 71, 24, 90, 5]);
    console.log(remains);
    remains.next();
    console.log('we'r here(?)');
    console.log(remains);
    done();
  })

当我运行我的测试时,输出如下:

{}
we'r here(?)
{}

与JS + ES6相关的人可以帮助我。我的最后一种方法是回复我的功能承诺,但它没有帮助我履行职责,我真的需要同步完成这项工作

PS:可能是我的语法不是最好的(也许我没有使用ES6的最佳实践),也不是我的英语水平(可能是一些错字)。所以,甚至感谢阅读本文

0 个答案:

没有答案