22 promise ecmascript-6 traceur es6-promise babeljs
我想扩展Promise:
class PersistedPromise extends Promise { }
Run Code Online (Sandbox Code Playgroud)
然后resolve在派生类上调用static 以直接创建已解析的promise:
PersistedPromise.resolve(1)
Run Code Online (Sandbox Code Playgroud)
在traceur中,这会产生:
ModuleEvaluationError: #<PersistedPromise> is not a promise
at new PersistedPromise (~rtm/gen/promise.js:6:57)
at Function.resolve (native)
Run Code Online (Sandbox Code Playgroud)
在Babel(运行babel-node --experimental promise.js)中,它会导致:
Promise.apply(this, arguments);
^
TypeError: [object Object] is not a promise
at new PersistedPromise (~rtm/gen/promise.js:1:23)
at Function.resolve (native)
...
Run Code Online (Sandbox Code Playgroud)
我依赖于此:
Promise的所有静态方法都支持子类化:它们通过接收器创建新实例(想想:new this(...))并通过它访问其他静态方法(this.resolve(...)与Promise.resolve(.. )).
来自http://www.2ality.com/2014/10/es6-promises-api.html.
似乎节点检查thison调用,例如Promise.resolve.call(this, val)是a Promise,而不是(正确?)Promise 或其派生类(v0.12.0).
以上是不再有效,或者没有制定规范,或者只是没有由traceur和/或节点实现?
| 归档时间: |
|
| 查看次数: |
4839 次 |
| 最近记录: |