起了一个好玩的名字:Promising,主要是想深入学习一下 Promise 到底是怎么回事,最后发现照着规范的条条框框就能差不多直译出来。
提供的 API 有:
Promising()
Promising.resolve()
Promising.reject()
Promising.prototype.then()
Promising.prototype.catch()
没有提供的 API 有:
Promising.all()
Promising.race()
额外提供了两个辅助测试的方法 mayBeResolved
和 mayBeRejected
,能配合 Mocha 使用:
// test.js
const { mayBeResolved, mayBeRejected } = require('./helper')
describe('testing static methods: ', () => {
it('should be resolved', () => {
mayBeResolved(Promising.resolve(42)).then((value) => {
expect(value).to.equal(42)
})
})
it('should be rejected', () => {
mayBeRejected(Promising.reject('oops')).catch(reason => {
expect(reason).to.equal('oops')
})
})
})
最后附上 Repo 地址:Promising
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.