gpt4 book ai didi

javascript - 为什么客户端中的 Meteor.call() 返回未定义?

转载 作者:行者123 更新时间:2023-12-03 09:25:58 25 4
gpt4 key购买 nike

因此,我尝试访问 Twitter REST API 并检索推文的屏幕名称。我觉得我的代码会更好地解释:

我正在从 isClient() 调用方法“screenName”:

  'click button': function () {
Meteor.call('screenName',
function(error,result) {
if (error) {
console.log(error);
}
else {
window.alert(result);
}
}
)
}

由于某种原因,当该方法实际在控制台上登录 Twitter 帐户的屏幕名称时,该方法会返回未定义。

Meteor.methods({
'screenName': function() {
T.get('search/tweets',
{
q:'#UCLA',
count:1
},
function(err,data,response) {
console.log(data.statuses[0].user.screen_name);
return data.statuses[0].user.screen_name;
}
)
}

如果有人可以帮我解决这个问题。非常感谢!

最佳答案

您的服务器方法需要同步。方法中的回调方法已经返回未定义之后返回。我想更具体一些,但我不确定你正在使用哪个库。

您可以通过查看 HTTP.call 中的示例来感受这一点。文档。您的代码可能如下所示:

Tget = Meteor.wrapAsync(T.get);

Meteor.methods({
'screenName': function() {
try {
var result = Tget('search/tweets', {q:'#UCLA', count:1});
return result.statuses[0].user.screen_name;
} catch (e) {
return false;
}
}
});

参见the docs有关 wrapAsync 的更多信息。

关于javascript - 为什么客户端中的 Meteor.call() 返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664423/

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