UNPKG

@ng-web-apis/workers

Version:
23 lines (22 loc) 1.97 kB
// throw an error using the `setTimeout` function // because web worker doesn't emit ErrorEvent from promises export const WORKER_BLANK_FN = ` function(fn){ function isFunction(type){ return type === 'function'; } self.addEventListener('message', function(e) { var result = fn.call(null, e.data); if (result && [typeof result.then, typeof result.catch].every(isFunction)){ result .then(postMessage) .catch(function(error) { setTimeout(function(){throw error}, 0) }) } else { postMessage(result); } }) } `; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLWZuLXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy93b3JrZXJzL3NyYy93b3JrZXIvY29uc3RzL3dvcmtlci1mbi10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpREFBaUQ7QUFDakQsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1COUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRocm93IGFuIGVycm9yIHVzaW5nIHRoZSBgc2V0VGltZW91dGAgZnVuY3Rpb25cbi8vIGJlY2F1c2Ugd2ViIHdvcmtlciBkb2Vzbid0IGVtaXQgRXJyb3JFdmVudCBmcm9tIHByb21pc2VzXG5leHBvcnQgY29uc3QgV09SS0VSX0JMQU5LX0ZOID0gYFxuZnVuY3Rpb24oZm4pe1xuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odHlwZSl7XG4gICAgICAgIHJldHVybiB0eXBlID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGZuLmNhbGwobnVsbCwgZS5kYXRhKTtcbiAgICAgICAgaWYgKHJlc3VsdCAmJiBbdHlwZW9mIHJlc3VsdC50aGVuLCB0eXBlb2YgcmVzdWx0LmNhdGNoXS5ldmVyeShpc0Z1bmN0aW9uKSl7XG4gICAgICAgICAgICByZXN1bHRcbiAgICAgICAgICAgICAgICAudGhlbihwb3N0TWVzc2FnZSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGVycm9yfSwgMClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9zdE1lc3NhZ2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgIH0pXG59XG5gO1xuIl19