我可能在这里展示了我对 javascript 的无知,但为什么这不起作用?我怎样才能重写这段代码以使其工作?
// On the client
Template.tabs.title = function () {
var msg;
Meteor.call('getMessage', this.msg_id, function (error, result) {
console.log(result); // Prints out a perfectly fine message object
msg = result;
});
if (msg)
return msg.title;
else
return "(empty)"; // This is always the value that's shown on the page
};
我对这个问题的理解是“if”语句在回调可以设置 msg 变量之前执行。那正确吗?还是范围界定问题?我什至可以这样做,从模板中调用“调用”吗?
我在这里使用方法的原因是 Messages 集合可能很大,我无法在客户端上整体订阅它。我订阅了其中的一部分,但我还需要查找任意消息,无论我的订阅有什么。