Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

深入 Promise

$
0
0

这周研究了下 Promise/A+ 规范和 Promise/A+ 的实现。写了 3 篇文章(太长,就不搬过来了):

  1. 深入 Promise(一)——Promise 实现详解
  2. 深入 Promise(二)——进击的 Promise
  3. 深入 Promise(三)——命名 Promise

并发布了 3 个包:

  1. appoint
  2. named-appoint
  3. condition-appoint

顺便擅自提出一个 Promise/A++规范。。其实就是在 Promise/A+ 规范上添加了 “命名Promise” 的扩展。举个栗子:

var Promise = require('named-appoint')
new Promise(function username(resolve, reject) {
  setTimeout(() => {
    resolve('nswbmw')
  })
})
.then(function user(_, username) {
  return {
    name: 'nswbmw',
    age: '17'
  }
})
.then(function followers(_, username, user) {
  return [
    {
      name: 'zhangsan',
      age: '17'
    },
    {
      name: 'lisi',
      age: '18'
    }
  ]
})
.then((_, user, followers, username) => {
  assert.deepEqual(_, [ { name: 'zhangsan', age: '17' }, { name: 'lisi', age: '18' } ])
  assert(username === 'nswbmw')
  assert.deepEqual(user, { name: 'nswbmw', age: '17' })
  assert.deepEqual(followers, [ { name: 'zhangsan', age: '17' }, { name: 'lisi', age: '18' } ])
})

招聘

[北京/武汉] 石墨文档 做最美产品 - 寻找中国最有才华的工程师加入


Viewing all articles
Browse latest Browse all 14821

Trending Articles