@searchfe/promise

1.0.6 • Public • Published

promise

Build Status Coverage Status

一个简易的、移动端专用的 Promise。

Promise/A+ spec. see: https://promisesaplus.com/

使用方式

使用 APM 安装:

apmjs install @searchfe/promise

RequireJS 示例使用:

require.config({
    baseUrl: "/amd_modules"
})
require(['@searchfe/promise'], function(Promise){
    Promise.resolve('hello').then(console.log)
})

API

在 Promises/A+ 的基础上新增了若干 bluebird 风格的 API。现有 API 如下:

  • #then()
  • #catch()
  • #finally()
  • .resolve()
  • .reject()
  • .all()
  • .fromCallback()
  • .mapSeries()

实现细节

unhandledrejection

按照 V8 的 Promise 实现,未捕获的 Promise 异常会触发一个名为 unhandledrejectionPromiseRejectionEvent。该 Promise 实现中,也会尝试触发这个事件。

nextTick

由于浏览器端没有 nextTick API,清空调用栈是借由其他机制实现的。 这些机制的 Fallback 顺序如下(序号越小优先级越高):

  1. setImmediate (W3C 标准)
  2. MessageChannel.postMessage(支持 Worker 的浏览器)
  3. window.postMessage(非 IE8)
  4. setTimeout(IE 8 及以下)

使用范围

  • 移动端专用:使用了移动端支持良好的 ES5 特性,IE 中使用可能会有问题
  • AMD 环境:目前只支持 AMD 环境

Readme

Keywords

none

Package Sidebar

Install

npm i @searchfe/promise

Weekly Downloads

4

Version

1.0.6

License

MIT

Unpacked Size

38.1 kB

Total Files

12

Last publish

Collaborators

  • jiajiutai
  • changying01
  • zhangmeng_summer
  • johnny126
  • lihuanyu01
  • pearl_wang
  • harttle
  • jaycezhang
  • qiansc
  • ashley_l
  • jennyliang220
  • cheer4chai
  • yuanxueran
  • biyingshuai
  • wclimb
  • lhyhappy365