use on(), wait 10 seconds for epub to arrive

This commit is contained in:
Daniel Lugo 2021-02-03 10:31:57 -04:00
parent 0f0e428391
commit c8883b55d1

View file

@ -210,33 +210,21 @@ const tryAndWait = async (promGen, shouldRetry = () => false) => {
* @param {string} pub
* @returns {Promise<string>}
*/
const pubToEpub = async pub => {
const pubToEpub = pub => {
try {
const epub = await tryAndWait(async gun => {
const _epub = await CommonUtils.makePromise(res => {
gun
return timeout10(
CommonUtils.makePromise(res => {
require('../../Mediator/index')
.getGun()
.user(pub)
.get('epub')
.once(
data => {
.on(data => {
if (typeof data === 'string') {
res(data)
},
{
wait: 1000
}
)
})
if (typeof _epub !== 'string') {
throw new TypeError(
`Expected gun.user(pub).get(epub) to be an string. Instead got: ${typeof _epub}`
)
}
return _epub
})
return epub
)
} catch (err) {
logger.error(err)
throw new Error(`pubToEpub() -> ${err.message}`)