.timeout(config.LANDO_METRICS_TIMEOUT || 10 * 1000)
.timeout(config.LANDO_API_TIMEOUT || 10 * 1000)
async function getRequests (jar, group, cursor) { const requests = [] const res = await getJoinRequests({ jar, group, cursor, limit: 100 }).timeout(settings.event.timeout) requests.push.apply(requests, res.data) if (res.nextPageCursor) { requests.push.apply(requests, await getRequests(jar, group, res.nextPageCursor)) } return requests }
leaveChannelMessage (id, channel) { const bus = this.clusterBus return Promise.try(() => { bus.emit('roomLeaveSocket', id, channel) const ackEventName = `socketRoomLeft:${id}:${channel}` return eventToPromise(bus, ackEventName) }).timeout(this.busAckTimeout).catchReturn() }
fetch(addr) { const network = this.symbol(addr); const url = `https://api.blockcypher.com/v1/${network.toLowerCase()}/main/addrs/${addr}`; return req(url, {json: true}) .timeout(5000) .cancellable() .spread(function(resp, json) { if (resp.statusCode < 200 || resp.statusCode >= 300) throw new Error(JSON.stringify(resp)); return { quantity: parseFloat(json.balance) / multiplier, asset: network }; }); }
test('new Promise -> timeout (reject in time)', function (t) { t.plan(4) twice(function () { var trans = ins.startTransaction() rejected('foo') .timeout(50) .then(function () { t.fail('should not resolve') }) .catch(function (err) { t.strictEqual(err, 'foo') t.strictEqual(ins.currentTransaction.id, trans.id) }) }) })
new Promise(function(resolve, reject) { setTimeout(function() { var val = Math.random(); if (val > 0.5) { resolve('{"value": ' + val + '}'); } else { reject(new Error('fail')); } }, 5000); }) .timeout(2500) .then(function(val) { console.log('object: ', JSON.parse(val)); }, function(err) { console.log(err); })
fetch(addr) { const url = `https://api.neoscan.io/api/main_net/v1/get_balance/${addr}`; return req(url, {json: true}) .timeout(10000) .cancellable() .spread((resp, json) => { if (resp.statusCode < 200 || resp.statusCode >= 300) throw new Error(JSON.stringify(resp)); if (json.error) throw new Error(json.error.message); return json.balance.map(b => ({ asset: b.asset_symbol, quantity: b.amount, })); }); }
new Promise(function (resolve, reject) { options.nightmare.goto(url) .wait('body') .evaluate(function(){ return document.documentElement.innerHTML }) .then(function(title) { return resolve(converter.convert(url, title, options)); }) }).timeout(10000)
fetch(addr) { const network = this.symbol(addr); const url = `https://chain.so/api/v2/get_address_balance/${network}/${addr}`; return req(url, {json: true}) .timeout(5000) .cancellable() .spread(function(resp, json) { if (resp.statusCode < 200 || resp.statusCode >= 300) throw new Error(JSON.stringify(resp)); return { quantity: parseFloat(json.data.confirmed_balance), asset: network }; }); }
test('new Promise -> timeout (resolve in time)', function (t) { t.plan(4) twice(function () { var trans = ins.startTransaction() resolved('foo') .timeout(50) .then(function (value) { t.strictEqual(value, 'foo') t.strictEqual(ins.currentTransaction.id, trans.id) }) .catch(function () { t.fail('should not reject') }) }) })
fetch(addr) { const url = `http://api.etherscan.io/api?module=account&action=balance&address=${addr}&tag=latest`; const conversion = 1000000000000000000; return req(url, {json: true}) .timeout(2000) .cancellable() .spread((resp, json) => { if (resp.statusCode < 200 || resp.statusCode >= 300) throw new Error(JSON.stringify(resp)); return { asset: "ETH", quantity: json.result / conversion }; }); }
fetch(addr) { const url = `https://blockchain.info/xpub/${addr}`; return req(url) .timeout(5000) .cancellable() .spread(function(resp, body) { if (resp.statusCode < 200 || resp.statusCode >= 300) throw new Error(JSON.stringify(resp)); const match = body.match(/id="final_balance">[^0-9.]+\d+[^0-9.]+([^ ]+)/); return { quantity: parseFloat(match && match[1]), asset: "BTC" }; }); }
fetch(addr) { const network = this.symbol(addr); const url = `https://chainz.cryptoid.info/${network.toLowerCase()}/api.dws?q=getbalance&a=${addr}`; return req(url) .timeout(5000) .cancellable() .spread(function(resp, body) { if (resp.statusCode < 200 || resp.statusCode >= 300) throw new Error(JSON.stringify(resp)); return { quantity: parseFloat(body), asset: network }; }); }
.timeout(config.LANDO_METRICS_TIMEOUT || 10 * 1000)