request(url, args, callback) { if (typeof args === 'function') { callback = args; args = null; } args = args || {}; if (args.ctx && args.ctx.tracer) { args.tracer = args.ctx.tracer; } else { args.tracer = args.tracer || this.app.tracer; } // the callback style if (callback) { this.app.deprecate('[httpclient] We now support async for this function, so callback isn\'t recommended.'); super.request(url, args) .then(result => process.nextTick(() => callback(null, result.data, result.res))) .catch(err => process.nextTick(() => callback(err))); return; } // the Promise style return super.request(url, args); }
request(url, args, callback) { // request(url, callback) if (typeof args === 'function') { callback = args; args = null; } // the callback style if (callback) { this.app.deprecate('[dnscache_httpclient] We now support async for this function, so callback isn\'t recommended.'); this[DNSLOOKUP](url, args) .then(result => { return super.request(result.url, result.args); }) .then(result => process.nextTick(() => callback(null, result.data, result.res))) .catch(err => process.nextTick(() => callback(err))); return; } // the Promise style return (async () => { const result = await this[DNSLOOKUP](url, args); return super.request(result.url, result.args); })(); }