我正在尝试加载我创建的模块,当它加载时使用它的一些方法。但似乎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?