我的节点应用程序包含以下代码:
当我运行节点应用程序时,console.log(“启动后”)在之前被称为 开始结束了,我需要 开始完成之后 我在这做错了什么?
myprocess.start(function() {
//this is called before the start was finished.
console.log("After start");
server.listen(app.get('port'), function(err) {
if (err) {
console.error(err);
} else {
console.log(' listen to: ' + app.get('port'));
}
});
});
文件 myprocess.js 包含以下内容
exports.start = function (callback) {
Validator.validateJson(function (err) {
console.log(err);
process.exit(1);
});
plugin.parse().then(function (configObj) {
if (typeof require.cache.persist === 'undefined') {
require.cache.persist = {};
}
require.cache.persist.configObj = configObj;
}, function (err) {
console.log(err);
});
var run= function () {
return Promise.all([
childPro.create(path.join(value)),
childPro.findAndUpdateUser()
]).spread(function (cmd,updatppEnv) {
return Promise.all([childProc.executeChildProcess('exec', cmd, updatedAppEnv), Promise.delay(50).then(function (results) {
return inter.ProcessRun(val);
})]);
})
}();
//I want that this callback will be called after the run promise will be finished
run.then(callback());
}
如何在完成所有启动过程后运行服务器代码?
更新
对我来说,它足以等到inter.ProcessRun(val)
;决定调用回调怎么做?
答案 0 :(得分:2)
您通过callback
立即调用run.then(callback())
。你想要run.then(callback)
。
答案 1 :(得分:0)
我猜你忘记了回复声明。 尝试
return run.then(callback);