【问题标题】:Precedence of yield in EcmaScript 6EcmaScript 6 中 yield 的优先级
【发布时间】:2014-06-23 14:27:56
【问题描述】:

我有一个函数build,它同步返回一个对象,该对象又包含一个函数run。此函数返回一个 thunk,因此可以使用 yield 和诸如 co 之类的库来调用。

调用基本上是这样的:

yield build().run();

现在,问题是我想确保yield 指的是run,而不是build。我该如何做到这一点,而不像下面的 sn-p 那样引入临时变量?

var temp = build();
yield temp.run();

有什么想法吗?

PS:我正在使用 ´--harmony´ 标志在 Node.js 0.11.x 上运行此代码。

【问题讨论】:

  • Little 的优先级高于会员操作员和呼叫操作员,因此您很安全。这是您的参考MDN Operator Precedence。 yield 离那里很远。您是否遇到无法按预期工作的问题?
  • 好吧,我想知道如何将此与我想使用yield 调用build 的情况区分开来,以防这是thunkified 函数。那会是(yield build()).run()吗?
  • 是的,在这种情况下您需要显式分组。
  • 太棒了:-))。感谢您的提示,这对我很有帮助。如果你把你的 cmets 变成答案,我会接受的。

标签: javascript node.js yield ecmascript-harmony ecmascript-6


【解决方案1】:

Little 的优先级高于成员运算符和呼叫运算符,因此您很安全。这是您的参考MDN Operator Precedence。 yield 离那里很远。

如果您想将yield 分组到build() 调用,您需要一个显式分组。

(yield build()).run()

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 2011-12-20
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多