2016年4月3日 星期日

利用jQuery Promise模擬Native Promise

我們在寫es6時,會用到一些es6才有的函式或物件 但如果可以使用jQuery的一些內建函式來模擬的話 我們就不需要import 'babel-polyfill' 這樣產出來的javascript檔案就會少個90k左右 以下為程式碼 ```js 'use strict'; import $ from 'jquery'; if (!window.Promise) { class Promise { constructor(callback) { this.deferred = $.Deferred(); callback((o) => { this.deferred.resolve(o); }, (o) => { this.deferred.reject(o); }); this.promise = this.deferred.promise(); } then(resolve, reject) { this.promise.done(resolve); this.promise.fail(reject); return this; } catch(reject) { this.promise.fail(reject); return this; } } window.Promise = Promise; } ```