better error handling

This commit is contained in:
Alex Yatskov 2017-09-09 11:36:50 -07:00
parent 124ecaf824
commit 9a5a9aa47f
2 changed files with 17 additions and 3 deletions

View File

@ -104,7 +104,12 @@ async function apiTemplateRender(template, data, dynamic) {
const sequence = utilBackend().sequenceNew(); const sequence = utilBackend().sequenceNew();
const handler = event => { const handler = event => {
if (event.data.sequence === sequence) { if (event.data.sequence === sequence) {
resolve(event.data.result); if (event.data.command === 'error') {
reject(event.data.result);
} else {
resolve(event.data.result);
}
window.removeEventListener('message', handler); window.removeEventListener('message', handler);
} }
}; };

View File

@ -31,7 +31,16 @@ window.addEventListener('message', event => {
window.yomichan_cache[event.data.template] = template; window.yomichan_cache[event.data.template] = template;
} }
const result = template(event.data.data || {}); let result = null;
event.source.postMessage({result, sequence: event.data.sequence}, '*'); let command = null;
try {
command = 'render';
result = template(event.data.data || {});
} catch (e) {
command = 'error';
result = e;
}
event.source.postMessage({result, command, sequence: event.data.sequence}, '*');
} }
}); });