UNPKG

599 BJavaScriptView Raw
1/* @flow */
2
3"use strict";
4
5export type Defered = {
6 promise: Promise<void>;
7 resolve: () => void;
8 reject: (e: Error) => void;
9 rejectingPromise: Promise<any>;
10};
11
12export function create(): Defered {
13 let _resolve: () => void = () => {};
14 let _reject: (e: Error) => void = (e) => {};
15 const promise = new Promise((resolve, reject) => {
16 _resolve = resolve;
17 _reject = reject;
18 });
19 const rejectingPromise = promise.then(() => {
20 throw new Error(`Promise is always rejecting`);
21 });
22 return {
23 promise,
24 rejectingPromise,
25 resolve: _resolve,
26 reject: _reject,
27 };
28}