Better handling of timeouts in pubToEpub()

This commit is contained in:
Daniel Lugo 2021-07-23 09:38:45 -04:00
parent d33af3787d
commit 6d3f9e9f01

View file

@ -180,7 +180,9 @@ const tryAndWait = async (promGen, shouldRetry = () => false) => {
*/ */
const pubToEpub = async pub => { const pubToEpub = async pub => {
try { try {
const epub = await timeout10( const TIMEOUT_PTR = {}
const epubOrTimeout = await Promise.race([
CommonUtils.makePromise(res => { CommonUtils.makePromise(res => {
require('../../Mediator/index') require('../../Mediator/index')
.getGun() .getGun()
@ -191,14 +193,23 @@ const pubToEpub = async pub => {
res(data) res(data)
} }
}) })
}),
CommonUtils.makePromise(res => {
setTimeout(() => {
res(TIMEOUT_PTR)
}, 10000)
}) })
) ])
return epub if (epubOrTimeout === TIMEOUT_PTR) {
throw new Error(`Timeout inside pubToEpub()`)
}
return epubOrTimeout
} catch (err) { } catch (err) {
logger.error(`Error inside pubToEpub:`) logger.error(`Error inside pubToEpub:`)
logger.error(err) logger.error(err)
throw new Error(`pubToEpub() -> ${err.message}`) throw err
} }
} }