我在打印这两个陈述时面临一个问题,我有两个功能
var mongoose = require( 'mongoose' );
var_show_test = mongoose.model( 'test' );
exports.showTest = function(req,res) {
var jsonString = [];
var_show_test.find(function (err, testa) {
console.log("In find");
});
console.log("In function");
}
但它按顺序打印语句
In function
In find
我想要的是按顺序打印语句,例如
In find
In function
我知道它是由于异步调用而发生的,我对回调函数有点困惑。如何处理这个以便按顺序打印语句。
答案 0 :(得分:2)
对于初学者,如果您只是想登录控制台,那么您可以将第二个console.log
放入回调 -
exports.showTest = function(req,res) {
var jsonString = [];
var_show_test.find(function (err, testa) {
console.log("In find");
console.log("In function");
});
}
但是,如果你想在执行find回调后执行一个函数/方法,那么你需要在这里使用一个闭包 -
exports.showTest = (function (callback) {
return function(req,res) {
var jsonString = [];
var_show_test.find(function (err, testa) {
console.log("In find");
callback();
});
}
})(callbackFunc);
function callbackFunc() {
console.log('In my callback!');
}