UNPKG

463 BJavaScriptView Raw
1"use strict";
2
3const deasync = require('deasync');
4/**
5 * Synchronously waits for a promise to return by
6 * yielding to the node event loop as needed.
7 */
8
9
10function syncPromise(promise) {
11 let isDone = false;
12 let res, err;
13 promise.then(value => {
14 res = value;
15 isDone = true;
16 }, error => {
17 err = error;
18 isDone = true;
19 });
20 deasync.loopWhile(() => !isDone);
21
22 if (err) {
23 throw err;
24 }
25
26 return res;
27}
28
29module.exports = syncPromise;
\No newline at end of file