diff --git a/src/pyj/read_book/resources.pyj b/src/pyj/read_book/resources.pyj index 0a4bd2de39..0e713715fd 100644 --- a/src/pyj/read_book/resources.pyj +++ b/src/pyj/read_book/resources.pyj @@ -27,13 +27,13 @@ def load_resources(book, root_name, previous_resources, proceed): link_pat = create_link_pat(book) def do_one(): - if not pending_resources.length: + name = pending_resources.shift() + if not name: for k in previous_resources: v'delete previous_resources[k]' if book.manifest.files[root_name].has_maths: return load_mathjax(book, ans, proceed) return proceed(ans) - name = pending_resources.shift() if ans[name]: return setTimeout(do_one, 0) if previous_resources[name]: diff --git a/src/pyj/viewer-main.pyj b/src/pyj/viewer-main.pyj index 40b59c243c..fc15c11e89 100644 --- a/src/pyj/viewer-main.pyj +++ b/src/pyj/viewer-main.pyj @@ -54,6 +54,8 @@ def file_received(name, file_data, proceed, end_type, xhr, ev): def get_file(book, name, proceed): entry = book.manifest.files[name] + if not entry: + raise ValueError(f'No file named {name} in the book manifest') xhr = ajax('book/' + name, file_received.bind(None, name, entry, proceed), ok_code=0) if entry.is_html or entry.mimetype.startswith('text/') or entry.mimetype is 'application/javascript': xhr.responseType = 'text'