Giter VIP home page Giter VIP logo

promise's Introduction

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 环境

promise's People

Contributors

harttle avatar

Stargazers

李浪波 avatar

Watchers

James Cloos avatar breezet avatar zoumiaojiang avatar Sheeta avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.