切下一个小注释,说明在断开Internet连接时如何暂停应用程序的执行并在恢复连接时继续执行。
假设您的假设应用程序应该执行http请求队列。 而且,每个后续操作都取决于前一个的结果。
async function main () { let url = ' ... ' while (url) { const resp = await fetch(url) const json = await resp.json() url = json.url } }
但是,如果在此过程中与Internet的连接消失,则队列将被中断。 让我们修复它。
首先,我们编写一个函数,该函数将返回一个promise,该promise将在客户端恢复连接时得到解决:
function awaitOnline () { return new Promise(resolve => {
现在将其添加到我们的主代码中
async function main () { let url = ' ... ' while (url) { await awaitOnline()
以这种简单的方式,在每次迭代时,我们的算法都会检查网络状态,如果没有连接,则会暂停。 恢复连接后,它将自动从同一位置继续执行。
当然,这不是万能药。 但是,如此小的漏洞将使您的应用程序更具容错能力。