首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以从thinky.io获取数据,但无法获取数据

我可以从thinky.io获取数据,但无法获取数据
EN

Stack Overflow用户
提问于 2014-11-30 06:43:13
回答 1查看 536关注 0票数 0

我的userProfileController.js结果未定义

代码语言:javascript
复制
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文件中,我无法得到回调不起作用的结果

代码语言:javascript
复制
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);

    });

}}
EN

回答 1

Stack Overflow用户

发布于 2014-11-30 06:51:03

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

代码语言:javascript
复制
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

您将在控制台中看到:

代码语言:javascript
复制
"outside callback" undefined
"inside callback" myResultValue

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

代码语言:javascript
复制
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中看到正确的结果

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27207958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档