gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:21:51 26 4
gpt4 key购买 nike

加载模板 View 时,客户端向服务器执行 Meteor.call('getPlayerScore') 以获取一些数据。

在服务器上,getPlayerScore 方法使用 _.wrapAsync 执行同步函数 client.zrevrangeSync 并返回 1234 包装函数完成运行后的字符串。

问题: 为什么客户端接收到的resultundefined?如果 result 在调用 client.zrevrangeSync 之前返回,则它不是未定义的,但如果从 client.zrevrangeSync 中返回,则它是未定义的。

Meteor.methods({

getPlayerScore: function(playerId) {

var client = redis.createClient(6379, redisServer)

client.zrevrangeSync = Meteor._wrapAsync(client.zrevrange)
client.zrevrangeSync(['players:' + playerId, 0, 3, 'WITHSCORES'], function(err, result) {
return '1234'
})
}

})





Template.playerScoreboard.helpers({
playerScore: function () {

Meteor.call('getPlayerScore', 1, function (error, result) {
console.log('result: ', result)
return
});

}
})

最佳答案

通常您不会在回调中返回您得到的东西/除非它的 CoffeeScript 。

client.zrevrangeSync = Meteor._wrapAsync(client.zrevrange.bind(client));

return client.zrevrangeSync(['players:' + playerId, 0, 3, 'WITHSCORES']);

关于javascript - Meteor.call 从 _.wrapAsync 函数返回时返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25468504/

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