Skip to content

Commit 2d6ea8f

Browse files
committed
make 'deferred' objects into a class
1 parent afe90e6 commit 2d6ea8f

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
@@ -12,7 +12,7 @@ function Promise(fn) {
1212

1313
this.then = function(onFulfilled, onRejected) {
1414
return new Promise(function(resolve, reject) {
15-
handle({ onFulfilled: onFulfilled, onRejected: onRejected, resolve: resolve, reject: reject })
15+
handle(new Handler(onFulfilled, onRejected, resolve, reject))
1616
})
1717
}
1818

@@ -23,7 +23,7 @@ function Promise(fn) {
2323
}
2424
nextTick(function() {
2525
var cb = state ? deferred.onFulfilled : deferred.onRejected
26-
if (typeof cb !== 'function'){
26+
if (cb === null) {
2727
(state ? deferred.resolve : deferred.reject)(value)
2828
return
2929
}
@@ -81,3 +81,11 @@ function Promise(fn) {
8181
try { fn(resolve, reject) }
8282
catch(e) { reject(e) }
8383
}
84+
85+
86+
function Handler(onFulfilled, onRejected, resolve, reject){
87+
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null
88+
this.onRejected = typeof onRejected === 'function' ? onRejected : null
89+
this.resolve = resolve
90+
this.reject = reject
91+
}

0 commit comments

Comments
 (0)