【问题标题】:Can I return an async value (a Promise) from a Meteor helper?我可以从 Meteor 助手返回异步值(Promise)吗?
【发布时间】:2015-10-21 22:22:26
【问题描述】:

Promise 是一种对象类型,用作未来结果的占位符, 例如 HTTP 请求的主体,或者 Meteor 方法调用的返回值。 基本上任何强制你传递回调来接收它的函数 返回值(而不是仅仅返回它)被称为异步函数, 而它返回的值可以用一个 Promise 来表示。

Meteor 中的问题是 helper 方法仅适用于 同步值 - 例如网页中的文本,或 Minimongo 集合。当你从一个返回 Promise 时,助手

  • 显示[object Promise] 而不是解析值
  • 承诺解决后不更新

存在一些解决此问题的尝试:simple:reactive-methodarsnebula:reactive-promise,但它们要求您将助手更改为某种样式,或者仅使用Meteor.call,而不仅仅是简单地允许返回通用承诺。

是否存在一些我忽略的东西,或者是否有解决方案?我已经对此进行了一段时间的试验,如果没有官方答案,我可能会自己做一些事情。

【问题讨论】:

  • 请给出到目前为止您尝试过的示例代码。
  • 好问题。您基本上希望将simple:reactive-method 与promise 一起使用而不是方法,但除此之外它是相同的想法。
  • 是的,@AndrewMao,但 ReactiveMethod 不可链接,不是完整的承诺..

标签: meteor meteor-blaze


【解决方案1】:

即使对于那里的其他库,我认为现在的答案是使用包 deanius:promise(免责声明:我创作了它,并得到了一些其他包的作者的意见)。

它会按照问题的要求进行操作,并添加了一些不错的功能,例如可控错误和加载消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-08
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 2018-06-06
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多