gpt4 book ai didi

mysql - Mysql+Nodejs如何回调结果

转载 作者:行者123 更新时间:2023-11-29 09:32:27 28 4
gpt4 key购买 nike

我正在尝试获取从数据库返回的结果,根据一些文档我必须使用回调,我正在尝试,但结果仍然未定义,请帮助我

// app.js file
var db = require('./database');
var access_token;

db.page_access_token(page_id, function(err, content) {
if (err) {
console.log(err);
} else {
access_token = content;
console.log(access_token); // response conrrect
}
});
console.log(access_token); // response undefined

// database.js file
module.exports = {

page_access_token : function(page, callback){
conn.query('SELECT access_token FROM facebook_pages WHERE ?', {page : page}, function(err, row) {
if (err) {
callback(err, null);
} else
callback(null, row[0].access_token);
});
}

}

最佳答案

数据库调用是异步的(需要时间来完成执行)。您在回调中为 access_token 赋值,并且在回调函数之外记录 access_token 变量。这里,access_token 未定义,因为回调函数之外的 console.log() 在回调函数中的 console.log() 之前执行,因为它是异步操作。如果您需要在回调之外使用 access_token,请编写一个函数并将 access_token 作为参数传递给该函数。例如 -

db.page_access_token(page_id, function(err, content) {
if (err) {
console.log(err);
} else {
access_token = content;
doSomeWork(access_token);
console.log("Access token in callback -->>"+ access_token);
}
});

function doSomeWork(acc_token){
console.log("Access token in doSomeWork -->>"+ acc_token);
}

关于mysql - Mysql+Nodejs如何回调结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58404982/

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