Lint and format src/runtime/internal/loop.js

pull/8569/head
S. Elliott Johnson 3 years ago
parent a6131de7af
commit e05c2c6225

@ -4,21 +4,20 @@ const tasks = new Set();
* @returns {void}
*/
function run_tasks(now) {
tasks.forEach((task) => {
if (!task.c(now)) {
tasks.delete(task);
task.f();
}
});
if (tasks.size !== 0)
raf(run_tasks);
tasks.forEach((task) => {
if (!task.c(now)) {
tasks.delete(task);
task.f();
}
});
if (tasks.size !== 0) raf(run_tasks);
}
/**
* For testing purposes only!
* @returns {void}
*/
export function clear_loops() {
tasks.clear();
tasks.clear();
}
/**
* Creates a new task that runs on each raf frame
@ -27,21 +26,19 @@ export function clear_loops() {
* @returns {import("/Users/elliottjohnson/dev/sveltejs/svelte/loop.ts-to-jsdoc").Task}
*/
export function loop(callback) {
/** @type {TaskEntry} */
let task;
if (tasks.size === 0)
raf(run_tasks);
return {
promise: new Promise((fulfill) => {
tasks.add((task = { c: callback, f: fulfill }));
}),
abort() {
tasks.delete(task);
}
};
/** @type {TaskEntry} */
let task;
if (tasks.size === 0) raf(run_tasks);
return {
promise: new Promise((fulfill) => {
tasks.add((task = { c: callback, f: fulfill }));
}),
abort() {
tasks.delete(task);
}
};
}
/** @typedef {(now: number) => boolean | void} TaskCallback */
/** @typedef {{ c: TaskCallback; f: () => void }} TaskEntry */

Loading…
Cancel
Save