gpt4 book ai didi

javascript - 为什么功能流程不正常?

转载 作者:行者123 更新时间:2023-11-30 00:33:26 24 4
gpt4 key购买 nike

我正在开发一个 nodeJS 应用程序,我无法像我定义的那样在正常流程中调用函数。

console.log('1') 
require('../models/userModel')(UserCtrl);// inside this file i have console.log('2')
console.log('3')

但我得到1个3个2个而不是 12个3个 这是我的 userModel 代码

var Waterline   = require('waterline'),
config = require('../config/db'),
_ = require('lodash')
orm = new Waterline()

module.exports = function(refContObj){
var User = Waterline.Collection.extend({

identity: 'user',
connection: 'myLocalDBConn',

attributes: {
first_name: 'string',
last_name: 'string'
}
});

orm.loadCollection(User);
orm.initialize(config,function(err, models){
refContObj.models = models.collections;

console.log('2')
});
}

谢谢

最佳答案

orm 对象的初始化方法是异步的。这意味着控制权将交给异步方法后面的代码,即 console.log('3') 语句,当初始化方法完成时,将调用包含 console.log('2') 的回调。

require('../models/userModel')(UserCtrl, main);

function main() {
console.log('3');
}

userModel代码应该是:

var Waterline   = require('waterline'),
config = require('../config/db'),
_ = require('lodash')
orm = new Waterline()

module.exports = function(refContObj, cb){
var User = Waterline.Collection.extend({

identity: 'user',
connection: 'myLocalDBConn',

attributes: {
first_name: 'string',
last_name: 'string'
}
});

orm.loadCollection(User);
orm.initialize(config,function(err, models){
refContObj.models = models.collections;

console.log('2');
cb();

});
}

关于javascript - 为什么功能流程不正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28294444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com