[英]Node.js get the return value of a function
我剛開始研究node.js並了解它的概念,我在理解回調方面遇到了一些麻煩,我想要做的是在函數getOffers()中調用函數getUserBranch() 。
我讀到,因為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("xx@xxx.com", function(data){
/* This data stack 1 */
console.log(data);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.