cloudfunctions/ClearingRedundantFolders/node_modules/@cloudbase/node-sdk/src/utils/request.ts

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

import http from 'http'
import request from 'request'
import { IReqOpts } from '../type/index'
import { withRetry, IRetryOptions } from './retry'
import { RequestTimgingsMeasurer } from './request-timings-measurer'
import HttpKeepAliveAgent, { HttpsAgent as HttpsKeepAliveAgent } from 'agentkeepalive'

const SAFE_RETRY_CODE_SET = new Set([
    'ENOTFOUND',
    'ENETDOWN',
    'EHOSTDOWN',
    'ENETUNREACH',
    'EHOSTUNREACH',
    'ECONNREFUSED'
])

const RETRY_CODE_SET = new Set(['ECONNRESET', 'ESOCKETTIMEDOUT'])

const RETRY_STATUS_CODE_SET = new Set([])

/* istanbul ignore next */
function shouldRetry(e: any, result: any, operation: any) {
    // 重试的错误码
    if (e && SAFE_RETRY_CODE_SET.has(e.code)) {
        return {
            retryAble: true,
            message: e.message
        }
    }
    // 连接超时
    if (e && e.code === 'ETIMEDOUT' && e.connect === true) {
        return {
            retryAble: true,
            message: e.message
        }
    }
    // 重试的状态码
    if (result && RETRY_STATUS_CODE_SET.has(result.statusCode)) {
        return {
            retryAble: true,
            message: `${result.request.method} ${result.request.href} ${result.statusCode} ${
                http.STATUS_CODES[result.statusCode]
            }`
        }
    }
    return {
        retryAble: false,
        message: ''
    }
}

interface ITimingsMeasurerOptions {
    waitingTime?: number
    interval?: number
    enable?: boolean
}

interface IExtraRequestOptions {
    debug?: boolean
    op?: string
后面还有 81 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。