gpt4 book ai didi

javascript - 我可以从 thinky.io 提取数据,但无法取出数据

转载 作者:行者123 更新时间:2023-12-03 11:19:03 24 4
gpt4 key购买 nike

我的userProfileController.js结果未定义

var UserProfileSerice = require('../../Services/User/UserProfileService.js');

module.exports = function(app){

app.get('/tester' , ensureAuthenticated, function(req, res){


var sonuc ;

UserProfileSerice.getUserByEmail(function(result){
sonuc = result;
})

console.log('sonuc' +sonuc);

res.render('UserPages/userPage');
})

}

该函数位于 UserProfileSerice.js 文件内我无法得到结果回调不起作用

var UserModel = require('../../Models/User/UserModel.js');
var thinktConfig = require('../../Utils/rethinkdb/config.js');
var thinky = require('thinky')(thinktConfig.rethinkdb);
module.exports ={



getUserByEmail : function (callback) {

UserModel.filter({email: "slmkrnz@gmail.com"}).run().then(function(result) {
callback(result);

});

}}

最佳答案

这只是因为您正在进行的调用是异步的。回调已定义,但执行会尝试在回调返回之前执行 console.log(myResult)。我敢打赌,如果您将代码替换为:

var myResult;
UserModel.filter({username : 'selim'}).run().then(function(result){
myResult = result;
console.log("inside callback", myResult); // write result
});
console.log("outside callback", myResult); // do not write

您将在控制台中看到:

"outside callback" undefined
"inside callback" myResultValue

但是,如果您想要在其他地方重用我的结果的值,那么您需要在执行完成后回调另一个方法。您需要执行以下操作:

var otherMethod = function(data){
console.log(data);
};

var myResult;
UserModel.filter({username : 'selim'}).run().then(function(result){
myResult = result;
console.log("inside callback", myResult); // write result
otherMethod(myResult);

});

这样,您应该在 otherMethod 中看到正确的结果

关于javascript - 我可以从 thinky.io 提取数据,但无法取出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27207958/

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