Skip to content

Commit 3ef7041

Browse files
Merge pull request #12 from nathan7/defer-class
make 'deferred' objects into a class
2 parents 59f8c23 + 2d6ea8f commit 3ef7041

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

index.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function Promise(fn) {
2020

2121
this.then = function(onFulfilled, onRejected) {
2222
return new Promise(function(resolve, reject) {
23-
handle({ onFulfilled: onFulfilled, onRejected: onRejected, resolve: resolve, reject: reject })
23+
handle(new Handler(onFulfilled, onRejected, resolve, reject))
2424
})
2525
}
2626

@@ -31,7 +31,7 @@ function Promise(fn) {
3131
}
3232
nextTick(function() {
3333
var cb = state ? deferred.onFulfilled : deferred.onRejected
34-
if (typeof cb !== 'function'){
34+
if (cb === null) {
3535
(state ? deferred.resolve : deferred.reject)(value)
3636
return
3737
}
@@ -95,3 +95,11 @@ function Promise(fn) {
9595
try { fn(resolve, reject) }
9696
catch(e) { reject(e) }
9797
}
98+
99+
100+
function Handler(onFulfilled, onRejected, resolve, reject){
101+
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null
102+
this.onRejected = typeof onRejected === 'function' ? onRejected : null
103+
this.resolve = resolve
104+
this.reject = reject
105+
}

0 commit comments

Comments
 (0)