UNPKG

721 BJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = syncPromise;
7
8var _deasync = _interopRequireDefault(require("deasync"));
9
10function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12/**
13 * Synchronously waits for a promise to return by
14 * yielding to the node event loop as needed.
15 */
16function syncPromise(promise) {
17 let isDone = false;
18 let res, err;
19 promise.then(value => {
20 res = value;
21 isDone = true;
22 }, error => {
23 err = error;
24 isDone = true;
25 });
26
27 _deasync.default.loopWhile(() => !isDone);
28
29 if (err) {
30 throw err;
31 } // $FlowFixMe this is valid since we wait using deasync above
32
33
34 return res;
35}
\No newline at end of file