文章目录
  1. 1. Defined
  2. 2. Main()
    1. 2.1. Why Promise
    2. 2.2. Base
    3. 2.3. XHR mode
    4. 2.4. then 链式传值
    5. 2.5. 错误样例
    6. 2.6. PS: Releasing Zalgo
  3. 3. Reference

Defined

ES6补充内容. 技术对接/转型ING. not support IE, 生产环境需要转换一下.

Main()

根据Refer, 以例子为主作为平时参考.

Why Promise

关于回调地狱(Callback Hell)直到前段时间写的一个项目我才有点意识到是怎么回事情: 一个稍微复杂的前端逻辑, 需要对一件事情在不同阶段/不同状态进行相关处理, 和画逻辑图一个概念, 传统的callback会导致函数一直层级向下直到逻辑处理完毕(minimap显示起来像个>). 而且Promise在开发的时候就更加规范化, 不像自定义的callback自由度很高(乱);每个promise拥有一个状态逻辑处理, 也就是更加模块化.

Base

从传统的callback过度

以onload事件为主的基础promise使用

XHR mode

XHR + 链式调用(调用完返回新的promise对象)

then 链式传值

simple calculation with promise-chain
then 会new一个Promise对象, 并把return作为参数引入

错误样例

针对前面做的补充: 错误样例. 需要注意规范, 利用链式保证对象的准确性.

PS: Releasing Zalgo

这个问题是关于传统callback的async和sync混用问题. 现在看到的大部分方式是以异步方法将同步代码转换为异步代码.
Example: 浏览器setTimeout(callback, 0) nodeprocess.nextTick(callback)
而Promise的规范限制他只能使用异步调用, 所以相关混用问题就不容易出现了.

Reference

promise-mini | gitbook

文章目录
  1. 1. Defined
  2. 2. Main()
    1. 2.1. Why Promise
    2. 2.2. Base
    3. 2.3. XHR mode
    4. 2.4. then 链式传值
    5. 2.5. 错误样例
    6. 2.6. PS: Releasing Zalgo
  3. 3. Reference