Files
30-seconds-of-code/test/runAsync/runAsync.js
Angelos Chalaris 41f0ae31eb Tests for tomorrow
2018-02-09 13:12:23 +02:00

16 lines
361 B
JavaScript

const runAsync = fn => {
const worker = new Worker(
URL.createObjectURL(new Blob([`postMessage((${fn})());`]), {
type: 'application/javascript; charset=utf-8'
})
);
return new Promise((res, rej) => {
worker.onmessage = ({ data }) => {
res(data), worker.terminate();
};
worker.onerror = err => {
rej(err), worker.terminate();
};
});
};
module.exports = runAsync;