Node.js获取函数的返回值
问题描述:
我刚开始研究node.js并了解它的概念,我在理解回调方面遇到了一些麻烦,我试图做的是调用函数getUserBranch( )中的函数getOffers()。Node.js获取函数的返回值
我读到,因为node.js异步性质,它更好地使用回调函数来获取所需的数据,一旦完成执行完成。
现在我无法获取该getUserBranch正在恢复,我有没有合适的想法如何做到这一点,以及回调函数的值,但我如何才能从那里值的价值?
file2.js
var getUserBranch = function(email,callback) {
client.execute('SELECT * from branch WHERE email=?', [ email ], function(
err, data, fields) {
if (err)
console.log("error");
else
console.log('The solution is in branch: \n', data);
res = data.rows[0];
return callback(res);
});
}
file1.js
var getOffers = function (email) {
var branchObj = require('./file2.js');
var branchList = branchObj.getUserBranch(email,getList));
return branchList;
};
var getList = function(res){
var results=res;
return results;
}
答
与堆栈中的回调函数异步调用的工作。看看这个:
var getUserBranch = function(email,callback) {
client.execute('SELECT * from branch WHERE email=?', [ email ], function(err, data, fields) {
if (err)
console.log("error");
else{
console.log('The solution is in branch: \n', data);
/* This data stack 3 */
callback(data.rows[0];);
}
});
};
var getOffers = function (email, callback) {
var branchObj = require('./file2.js');
branchObj.getUserBranch(email, function(data){
/* This data stack 2 */
callback(data);
});
};
function anyFunction(){
getOffers("[email protected]", function(data){
/* This data stack 1 */
console.log(data);
});
}
That worked :) Thank you – user3048440