意外标记'*'期望在函数的参数列表前加一个'(']

问题描述 投票:0回答:1

iOS9似乎不喜欢JavaScript生成器function*。我目前正在尝试摆脱iOS上的Promise问题,我的代码如下所示:

...

    myFunction: function() {
        return this.spawn(function*() {
            yield MyApp.function();
        });
        return;
    },
...

在iOS 9上导致以下错误:

意外的标记'*'预期在函数的开头'('参数列表

您知道兼容的替代方法吗?

javascript ios generator ecmascript-5
1个回答
0
投票

iOS 10支持生成器。如果您坚持使用iOS 9,则必须实现自己的fake生成器。生成器协议具有nextreturnthrow[Symbol.iterator]方法。您只能实现所需的那些。例如,这是[Symbol.iterator]的实现:

let createGenerator = values => () => ({
  [Symbol.iterator]() {
    let i = 0;
    return {
      next: () => ({
        value: values[i++],
        done: i > values.length
      }),
      // next
      // return
      // throw
    }
  }
});

let realGenerator = function*() {
  yield 1;
  yield 2;
  yield 3;
  yield 4;
};

let fakeGenerator = createGenerator([1, 2, 3, 4]);

console.log(...realGenerator());
console.log(...fakeGenerator());
© www.soinside.com 2019 - 2024. All rights reserved.