UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

43 lines (37 loc) 884 B
import { TaskSignal } from "../TaskSignal.js"; import Task from "../Task.js"; /** * * @param {Promise} promise * @param {string} name * @returns {Task} */ export function promiseTask(promise, name) { let resolved = false; let rejected = false; let error = null; promise.then(function () { resolved = true; }, function (e) { rejected = true; error = e; }); function cycle() { if (resolved) { return TaskSignal.EndSuccess; } else if (rejected) { throw error; } else { //give up CPU share return TaskSignal.Yield; } } function progress() { return resolved ? 1 : 0; } return new Task({ name: name, cycleFunction: cycle, computeProgress: progress }); }