require()没有同步运行?

时间:2014-03-20 18:31:50

标签: javascript node.js asynchronous

我正在尝试加载我创建的模块,当它加载时使用它的一些方法。但似乎require之后的代码在require实际完成之前执行。

以下是一些代码:

console.log(db);
var db = require('../../models')(true, v);
console.log(db);

console.log输出undefined

以下是../../models内的代码:

module.exports = function(sync, v) {
  if(sync === true && typeof v !== 'undefined') {
    var db = null;
    async.series([function(callback) {
      require('../lib/db_connect.js').connect(require('../lib/config.js').vars.db, function(res) {
        db = res;
        callback();
      });
    }], function() {
      return loadModels(db, v).models; // this returns the db instance with the models loaded
    });
  } else { /* other stuff */ }
});

但是,我看到连接调试在控制台中弹出一段时间(因此它被加载,只是不同步)。我究竟做错了什么?只有当一切都完成后,async.series才会返回?最重要的是,不返回undefined?

0 个答案:

没有答案