UNPKG

ember-legacy-class-transform

Version:
26 lines (24 loc) 579 B
import { run } from '@ember/runloop'; import RSVP from 'rsvp'; export function waitUntil(callback, { timeout = 1000 } = {}) { return new RSVP.Promise(function(resolve, reject) { let value = run(callback); if (value) { resolve(value); return; } let time = 0; let tick = function() { time += 10; let value = run(callback); if (value) { resolve(value); } else if (time < timeout) { setTimeout(tick, 10); } else { reject('waitUntil timed out'); } }; setTimeout(tick, 10); }); }