function mockPromise(resolver) { // states // 0: pending // 1: resolving // 2: rejecting // 3: resolved // 4: rejected var self = this, state = 0; try { if (typeof resolver === 'function') resolver(self.resovle, self.reject) } catch (e) { self.reject(e); } } var a = new mockPromise();