Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数*不使用节点模块_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript 函数*不使用节点模块

Javascript 函数*不使用节点模块,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我想从Mongo DB同步获取数据,所以我想使用*和yield。其他明智的正常使用回调其工作良好 运行此应用程序时,它会说getAsync不是“UserDao.getAsync(request);”行中的函数 我正在使用来自“”的引用 请帮助我解决问题,尝试将数据库.models.modelName.find包装成承诺。那么您的resolve()应该在exec函数中,您为什么认为yield是同步的?这取决于生成器的使用方式,在本例中,它可能是异步的。“它说getAsync不是第‘UserDao.

我想从Mongo DB同步获取数据,所以我想使用*和yield。其他明智的正常使用回调其工作良好

运行此应用程序时,它会说getAsync不是“UserDao.getAsync(request);”行中的函数 我正在使用来自“”的引用


请帮助我解决问题,

尝试将
数据库.models.modelName.find包装成承诺。那么您的resolve()应该在exec函数中,您为什么认为
yield
是同步的?这取决于生成器的使用方式,在本例中,它可能是异步的。“它说getAsync不是第‘UserDao.getAsync(request);’行的函数”-您发布的代码既没有该行,也没有在任何地方定义一个
getAsync
方法。你的意思是
getSync
?首先,它是上面代码中的一个函数,所以不清楚问题出在哪里。第二个问题是,除非您让生成器执行异步操作,否则它们不会执行任何异步操作。使用async..await(在节点8中提供)。
//userDao.js
module.exports = {
   * getSync(request) {
    let database = SYSTEM.getDatabase('databaseName');
    let skip = (request.pageSize || 10) * (request.pageNumber || 0);
    let result = yield database.models.modelName.find(request.query || {})
        .limit(request.pageSize || 10)
        .skip(skip)
        .sort(request.sort || {})
        .select(request.select || {})
        .exec((data) => {
            console.log('----------------- ', data);
            return data;
        });
    console.log('=================== ', result);
    return result;
   }
};

//userService.js
const UserDao = require('./userDao.js');
module.exports = {
   get: function(){
        return UserDao.getSync(request);
   }
}