Promise是一种对象类型,用作未来结果的占位符,例如HTTP请求的主体或Meteor方法调用的返回值.基本上任何强制你传递回调以接收其返回值(而不仅仅是返回它)的函数都被称为异步函数,它返回的值可以用Promise表示.
Meteor中的问题是helper方法仅用于处理同步值 - 例如网页中的文本或Minimongo集合的内容.当你从一个帮助者返回一个Promise时
[object Promise]而不是已解析的值解决这个问题的一些尝试存在:简单:反应方法
和arsnebula:反应承诺,但是它们要求你将助手改为某种风格,或者只使用Meteor.call而不仅仅是简单地允许返回通用承诺.
是否存在我忽略的东西,或者是否有解决方案?我已经尝试了一段时间了,如果没有正式的答案,我可能会自己做点什么.
从我发现的一个例子中,这段代码计算了数组中与其索引相等的元素数.但是怎么样?
[4, 1, 2, 0].to_enum(:count).each_with_index{|elem, index| elem == index}
Run Code Online (Sandbox Code Playgroud)
我不可能只通过链接来完成它,链中的评估顺序令人困惑.
我理解的是Enumerable#count,如果给出一个块,我们将使用其重载计算产生真值的元素数.我看到它each_with_index有关于该项是否等于它的索引的逻辑.
我不明白的是如何each_with_index成为块参数count,或者为什么each_with_index工作就像是直接调用它一样[4,1,2,0].如果map_with_index存在,我本可以做到:
[4,1,2,0].map_with_index{ |e,i| e==i ? e : nil}.compact
Run Code Online (Sandbox Code Playgroud)
但请帮助我理解这种基于可枚举的风格 - 它很优雅!
我知道我可以CollectionName.find().fetch()在浏览器的JS控制台中查询.是否有其他工具相当于所有 浏览器的本地minimongo存储的GUI管理工具?
错误是:
您尝试打开的文件"ExcelDna.xll"的格式与
文件扩展名指定的格式不同.在打开文件之前,验证文件是否已损坏且来自受信任的源.
我知道订阅是一种将记录流入客户端集合的方法,从这篇帖子和其他人...
但是,根据这篇文章,您可以有多个订阅流入同一个集合.
// server
Meteor.publish('posts-current-user', function publishFunction() {
return BlogPosts.find({author: this.userId}, {sort: {date: -1}, limit: 10});
// this.userId is provided by Meteor - http://docs.meteor.com/#publish_userId
}
Meteor.publish('posts-by-user', function publishFunction(who) {
return BlogPosts.find({authorId: who._id}, {sort: {date: -1}, limit: 10});
}
// client
Meteor.subscribe('posts-current-user');
Meteor.subscribe('posts-by-user', someUser);
Run Code Online (Sandbox Code Playgroud)
现在 - 我通过两个不同的订阅获取了我的记录,我可以使用订阅来获取它撤回的记录吗?或者我必须重新询问我的收藏品吗?在客户端和服务器之间共享该查询的最佳实践是什么?
我希望我不会错过这里显而易见的东西,但Meteor.subscribe仅仅因为它的副作用而执行该功能似乎正在丢失一条非常有用的信息 - 即记录来自哪个订阅.据推测,出版物和订阅的名称被选择为有意义 - 如果我能够获得与该名称相关的记录,那将是很好的.
当我开发有用的单行程序时,能够运行meteor shell,将其传递给单行程序并期望在完成后它将退出是很方便的.也许这样的语法如此?
meteor shell -e 'Meteor.users.remove({})'
Run Code Online (Sandbox Code Playgroud)
这是功能请求,还是已经存在?
补充:我想添加其中几个脚本,package.json以便项目中的所有开发人员共享它们.
我急切地关注即将到来的Cordova支持,并在docs示例中看到要更新的各种发行版本:
meteor update --release CORDOVA-PREVIEW@3
meteor update --release CORDOVA-PREVIEW@5
meteor update --release METEOR@0.9.2-rc0
meteor update --release METEOR@0.9.2-rc2
Run Code Online (Sandbox Code Playgroud)
此外,Meteor Cordova Wiki页面甚至没有提到版本.
我可以查看什么命令或页面可以查看"最新的"Meteor 0.9.2候选版本是什么?我应该从0.9.2分支更新以获得最佳Cordova支持吗?
我网站的某些页面是服务器端呈现的,因此通常的Meteor JavaScript包不可用.
我们希望保持页面尺寸不变,但是Tracker.autorun用于轻量级反应,我们怎样才能使用这片Meteor a-la-carte?
javascript reactive-programming meteor meteor-blaze meteor-tracker
meteor ×6
meteor-blaze ×2
enumerable ×1
enumerator ×1
excel-dna ×1
javascript ×1
minimongo ×1
mongodb ×1
ruby ×1