如何为cloudant库发起的HTTP请求设置超时限制
@cloudant/cloudant 3.x 版本HTTP请求超时设置方案
全局超时配置(所有请求生效)
初始化Cloudant客户端时直接传入requestTimeout参数即可设置全局默认超时,单位为毫秒,示例代码如下:
const Cloudant = require('@cloudant/cloudant'); // 初始化时设置全局超时为15秒 const cloudantClient = Cloudant({ url: '你的Cloudant服务访问地址', // 若使用IAM认证,保留对应插件配置即可 plugins: { iamauth: { iamApiKey: '你的IAM密钥' } }, requestTimeout: 15000 });
单请求独立超时配置(仅当前请求生效)
如果只需要给特定的长查询设置超时,不需要改动全局配置,可以在调用请求方法时额外传入timeout参数,优先级高于全局配置,示例代码如下:
const mydb = cloudantClient.use('目标数据库名'); // 仅当前find查询设置15秒超时 // 回调写法 mydb.find({ selector: { // 你的查询条件 } }, { timeout: 15000 }, (err, data) => { if (err) { // 可在这里捕获超时错误做后续处理 console.error('请求出错', err); return; } // 处理返回结果 }) // Promise/async await写法 async function queryData() { try { const result = await mydb.find({ selector: { // 你的查询条件 } }, { timeout: 15000 }); // 处理返回结果 } catch (err) { // 捕获超时错误 } }
注意:超时参数单位均为毫秒,当请求耗时超过设定阈值后会自动终止调用,抛出超时类错误。
内容的提问来源于stack exchange,提问作者Mithiridi Prasanth
相关产品推荐
相关产品推荐

