29 lines
No EOL
463 B
JavaScript
29 lines
No EOL
463 B
JavaScript
"use strict";
|
|
|
|
const deasync = require('deasync');
|
|
/**
|
|
* Synchronously waits for a promise to return by
|
|
* yielding to the node event loop as needed.
|
|
*/
|
|
|
|
|
|
function syncPromise(promise) {
|
|
let isDone = false;
|
|
let res, err;
|
|
promise.then(value => {
|
|
res = value;
|
|
isDone = true;
|
|
}, error => {
|
|
err = error;
|
|
isDone = true;
|
|
});
|
|
deasync.loopWhile(() => !isDone);
|
|
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
|
|
return res;
|
|
}
|
|
|
|
module.exports = syncPromise; |