gpt4 book ai didi

javascript - 使 Meteor 方法同步

转载 作者:数据小太阳 更新时间:2023-10-29 05:02:17 24 4
gpt4 key购买 nike

我一直在尝试使这个函数同步。我已经阅读了几篇关于 Async 的 Stack Overflow 帖子,但我无法理解如何实现同步。截至目前,它是异步的,因此它在进入回调函数之前返回 undefined。

我从客户端调用它:

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

这是服务器端方法:

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

我正在使用 Twitter API,我想做的基本上是从 JSON 中检索屏幕名称并将其返回给客户端的变量。但这将返回未定义,因为回调是在编译器到达“screenName”函数末尾后编译的。

我希望它从回调函数返回值,但阅读其他示例并没有帮助我理解如何转换我的代码。我需要使此功能同步,但我不知道该怎么做。

最佳答案

只需使用 Meteor.wrapAsync将您的异步 T.get 变成同步样式的!

虽然它实际上不会以纯粹的“同步”方式执行,但它使用了一种称为 Fiber 的技巧,但您应该阅读文档以了解更多信息。
开始了:

var Tget = Meteor.wrapAsync(T.get);

Meteor.methods({
'screenName': function() {
return Tget({
q : '#UCLA',
count : 1
}).status[0].user.screen_name;
}
});

关于javascript - 使 Meteor 方法同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685359/

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