Use async/await syntax in _updateQa
This commit is contained in:
parent
db3308e788
commit
ecdb06cbd6
@ -21,7 +21,7 @@ function _runHook(arr: () => Promise<any>[]): Promise<any[]> {
|
|||||||
return Promise.all(promises);
|
return Promise.all(promises);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _updateQA(html, fadeTime, onupdate, onshown) {
|
async function _updateQA(html, fadeTime, onupdate, onshown) {
|
||||||
// if a request to update q/a comes in before the previous content
|
// if a request to update q/a comes in before the previous content
|
||||||
// has been loaded, wait a while and try again
|
// has been loaded, wait a while and try again
|
||||||
if (_updatingQA) {
|
if (_updatingQA) {
|
||||||
@ -39,35 +39,35 @@ function _updateQA(html, fadeTime, onupdate, onshown) {
|
|||||||
var qa = $("#qa");
|
var qa = $("#qa");
|
||||||
|
|
||||||
// fade out current text
|
// fade out current text
|
||||||
new Promise((resolve) => qa.fadeTo(fadeTime, 0, () => resolve()))
|
await qa.fadeTo(fadeTime, 0).promise();
|
||||||
// update text
|
|
||||||
.then(() => {
|
|
||||||
try {
|
|
||||||
qa.html(html);
|
|
||||||
} catch (err) {
|
|
||||||
qa.html(
|
|
||||||
(
|
|
||||||
`Invalid HTML on card: ${String(err).substring(0, 2000)}\n` +
|
|
||||||
String(err.stack).substring(0, 2000)
|
|
||||||
).replace(/\n/g, "<br />")
|
|
||||||
);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.then(() => _runHook(onUpdateHook))
|
|
||||||
.then(() =>
|
|
||||||
// @ts-ignore wait for mathjax to ready
|
|
||||||
MathJax.startup.promise.then(() => {
|
|
||||||
// @ts-ignore clear MathJax buffer
|
|
||||||
MathJax.typesetClear();
|
|
||||||
|
|
||||||
// @ts-ignore typeset
|
// update text
|
||||||
return MathJax.typesetPromise(qa.slice(0, 1));
|
try {
|
||||||
})
|
qa.html(html);
|
||||||
)
|
} catch (err) {
|
||||||
// and reveal when processing is done
|
qa.html(
|
||||||
.then(() => new Promise((resolve) => qa.fadeTo(fadeTime, 1, () => resolve())))
|
(
|
||||||
.then(() => _runHook(onShownHook))
|
`Invalid HTML on card: ${String(err).substring(0, 2000)}\n` +
|
||||||
.then(() => (_updatingQA = false));
|
String(err.stack).substring(0, 2000)
|
||||||
|
).replace(/\n/g, "<br />")
|
||||||
|
);
|
||||||
|
};
|
||||||
|
await _runHook(onUpdateHook);
|
||||||
|
|
||||||
|
// @ts-ignore wait for mathjax to ready
|
||||||
|
await MathJax.startup.promise.then(() => {
|
||||||
|
// @ts-ignore clear MathJax buffer
|
||||||
|
MathJax.typesetClear();
|
||||||
|
|
||||||
|
// @ts-ignore typeset
|
||||||
|
return MathJax.typesetPromise(qa.slice(0, 1));
|
||||||
|
});
|
||||||
|
|
||||||
|
// and reveal when processing is done
|
||||||
|
await qa.fadeTo(fadeTime, 1).promise();
|
||||||
|
await _runHook(onShownHook);
|
||||||
|
|
||||||
|
_updatingQA = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _showQuestion(q, bodyclass) {
|
function _showQuestion(q, bodyclass) {
|
||||||
|
Loading…
Reference in New Issue
Block a user