当在服务器上定义变量时,Meteor.call返回“未定义”结果

流星嗡嗡声

有人可以在我的代码中看到为什么变量oauthToken在服务器上定义但在Meteor.call结果返回给客户端时未定义的原因

我打电话来发起服务器上的发布请求

主体被解析,我将值存储到变量oauthToken中

这会在服务器上打印出来,但是在我的“结果”中不会在客户端上打印出来

这是因为客户端正在运行模拟吗?我们可以在异步函数中执行“返回”吗?

Server.js

Meteor.methods({
 getGoodreads: function () { 
 request.post('http://www.goodreads.com/oauth/request_token', {oauth:{
                 consumer_key: '89hdg8pEoMzRdg',
                 consumer_secret: 'dfgdfgHthtdtjtt' }}, function (error, response, body) {
      if (!error && response.statusCode == 200) {
              var a = querystring.parse(body)
              oauthToken = a.oauth_token
              console.log(oauthToken); //prints value i need
              return oauthToken
       }else{
              console.log('there is an error ' + error);
            }
   });
} 
});

client.js

Template.profile.events({
    'click #goodreads': function (event) {
        event.preventDefault();
        Meteor.call('getGoodreads', function(error, result) {
            if (error) {
                console.log('this is an error ');
            } else {
                console.log(result); //THIS IS UNDEFINED...possibilities?
            }
        });
    }
 });
克里斯蒂安·斯莫拉(Christian Smorra)

使用Future从异步函数返回值:

var Future = Npm.require("fibers/future")    
Meteor.methods({
     getGoodreads: function () { 
     var f = new Future();
     request.post('http://www.goodreads.com/oauth/request_token', {oauth:{
                     consumer_key: '89hdg8pEoMzRdg',
                     consumer_secret: 'dfgdfgHthtdtjtt' }}, function (error, response, body) {
          if (!error && response.statusCode == 200) {
                  var a = querystring.parse(body)
                  oauthToken = a.oauth_token
                  console.log(oauthToken); //prints value i need
                  return f.return(oauthToken)
           }else{
                  f.throw(error);
                  console.log('there is an error ' + error);
                }
       });
       return f.wait()
    } 
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

getDownloadURL() 返回变量的未定义结果

来自分类Dev

从客户端上的Meteor.call获取未定义,但在服务器变量上包含数据

来自分类Dev

从API提取结果返回未定义

来自分类Dev

数组返回“未定义”结果

来自分类Dev

函数应返回布尔结果时返回未定义

来自分类Dev

Meteor.call回调函数返回未定义

来自分类Dev

变量结果未定义

来自分类Dev

未定义的变量:结果

来自分类Dev

当async为true时,Ajax Call返回未定义

来自分类Dev

承诺将未定义的结果返回给回调

来自分类Dev

遍历猫鼬结果返回未定义

来自分类Dev

SqlDataReader 结果视图返回未定义的东西

来自分类Dev

Promise mysql返回未定义,如何让函数等待结果

来自分类Dev

Bcrypt 哈希函数返回未定义的结果

来自分类Dev

返回未定义的变量

来自分类Dev

从_.wrapAsync函数返回时,Meteor.call返回未定义

来自分类Dev

结果在最终结果中返回未定义,但在axios请求中返回结果

来自分类Dev

返回结果Node.js时结果始终未定义

来自分类Dev

captureVisibleTab返回未定义

来自分类Dev

getJSON返回未定义

来自分类Dev

$ stateParams返回未定义

来自分类Dev

tagName返回未定义

来自分类Dev

减少返回未定义?

来自分类Dev

getBindingContext()返回未定义

来自分类Dev

Cookies返回未定义

来自分类Dev

useContext()返回未定义

来自分类Dev

从函数返回未定义

来自分类Dev

XMLHttpRequest返回未定义

来自分类Dev

返回的对象未定义