Skip to content

Instantly share code, notes, and snippets.

@compulim
Created July 31, 2017 17:57
Show Gist options
  • Save compulim/8b49b0a744a3eeb2205e2b9506201e50 to your computer and use it in GitHub Desktop.
Save compulim/8b49b0a744a3eeb2205e2b9506201e50 to your computer and use it in GitHub Desktop.
Deferred in ES6 Promise
interface IDeferred<T> {
promise: () => Promise<T>,
resolve: (result: T) => void,
reject: (error: Error) => void
}
function createDeferred<T>(): Promise<IDeferred<T>> {
return new Promise<IDeferred<T>>(resolveCreate => {
const promise = new Promise<T>(function (resolve, reject) {
resolveCreate({ promise: () => promise, resolve, reject });
});
});
}
@mingyang91
Copy link

function Deferred<T>() {
  let resolve, reject
  const promise = new Promise<T>((resolve0, reject0) => {
    resolve = resolve0
    reject = reject0
  })
  return {
    reject,
    resolve,
    promise
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment