 
         switch self.state {
         case .Pending:
-            performSync {
-                self.fulfillCallbacks.append(onFulfilledAsync)
-            }
+            self.fulfillCallbacks.append(onFulfilledAsync)
         case .Fulfilled(let value):
             onFulfilledAsync(value)
         case .Rejected(_):


        let nextPromise = Promise<T>()

        performSync {
            self.append(dispatchQueue, nextPromise: nextPromise, onFulfilled: { $0 })
            self.append(dispatchQueue, nextPromise: nextPromise, onRejected: onRejected)
        }

        return nextPromise
    }


        switch self.state {
        case .Pending:
            self.fulfillCallbacks.append(onFulfilledAsync)
        case .Fulfilled(let value):
            onFulfilledAsync(value)
        case .Rejected(_):
