UNPKG

telegram-mtproto

Version:
35 lines (28 loc) 582 B
//@flow import Bluebird from 'bluebird' // export type Defer = $Shape<Bluebird.Defer> export type Defer = { resolve<T>(rs: T): void, reject<E>(rs: E): void, promise: Promise<*>, } const filler: (value: *) => void = (value) => { throw new Error(`Filler must not be called!`) } /** * Defered promise like in Q and $q */ export const blueDefer = (): Defer => { let resolve = filler, reject = filler const promise = new Bluebird((rs, rj) => { resolve = rs reject = rj }) return { resolve, reject, promise } } export default blueDefer