* Create a fastdom task wrapped in * a 'cancellable' Promise. * * @param {FastDom} fastdom * @param {String} type - 'measure'|'mutate' * @param {Function} fn * @return {Promise}
(promised, type, fn, ctx)
| 53 | * @return {Promise} |
| 54 | */ |
| 55 | function create(promised, type, fn, ctx) { |
| 56 | var tasks = promised._tasks; |
| 57 | var fastdom = promised.fastdom; |
| 58 | var task; |
| 59 | |
| 60 | var promise = new Promise(function(resolve, reject) { |
| 61 | task = fastdom[type](function() { |
| 62 | tasks.delete(promise); |
| 63 | try { resolve(ctx ? fn.call(ctx) : fn()); } |
| 64 | catch (e) { reject(e); } |
| 65 | }, ctx); |
| 66 | }); |
| 67 | |
| 68 | tasks.set(promise, task); |
| 69 | return promise; |
| 70 | } |
| 71 | |
| 72 | // Expose to CJS, AMD or global |
| 73 | if ((typeof define)[0] == 'f') define(function() { return exports; }); |
no outgoing calls
no test coverage detected
searching dependent graphs…