diff --git a/src/core/runtime/dns-browser.js b/src/core/runtime/dns-browser.js index 5d8794ddd1..93d5b9c176 100644 --- a/src/core/runtime/dns-browser.js +++ b/src/core/runtime/dns-browser.js @@ -18,10 +18,8 @@ const _httpQueue = new PQueue({ concurrency: 4 }) function unpackResponse (domain, response, callback) { if (response.Path) { return callback(null, response.Path) - } else { - const err = new Error(response.Message) - return callback(err) } + return callback(new Error(response.Message)) } module.exports = (domain, opts, callback) => { @@ -49,15 +47,11 @@ module.exports = (domain, opts, callback) => { }) _httpQueue.add(() => fetch(url, { mode: 'cors' }) - .then((response) => { - return response.json() - }) + .then((response) => response.json()) .then((response) => { cache.set(query, response, ttl) - return unpackResponse(domain, response, callback) - }) - .catch((error) => { - callback(error) + setImmediate(() => unpackResponse(domain, response, callback)) }) + .catch((err) => setImmediate(() => callback(err))) ) } diff --git a/src/core/runtime/preload-browser.js b/src/core/runtime/preload-browser.js index 471d667a91..c09e716160 100644 --- a/src/core/runtime/preload-browser.js +++ b/src/core/runtime/preload-browser.js @@ -23,9 +23,9 @@ module.exports = function preload (url, callback) { log.error('failed to preload', url, res.status, res.statusText) throw new Error(`failed to preload ${url}`) } - return res.text() + setImmediate(callback) }) - ).then(() => callback(), callback) + ).catch((err) => setImmediate(() => callback(err))) return { cancel: () => controller.abort()