当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript HttpExecutor.addErrorAndTimeoutHandlers方法代码示例

本文整理汇总了TypeScript中builder-util-runtime.HttpExecutor.addErrorAndTimeoutHandlers方法的典型用法代码示例。如果您正苦于以下问题:TypeScript HttpExecutor.addErrorAndTimeoutHandlers方法的具体用法?TypeScript HttpExecutor.addErrorAndTimeoutHandlers怎么用?TypeScript HttpExecutor.addErrorAndTimeoutHandlers使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在builder-util-runtime.HttpExecutor的用法示例。


在下文中一共展示了HttpExecutor.addErrorAndTimeoutHandlers方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: BluebirdPromise

    return new BluebirdPromise((resolve, reject) => {
      const request = this.httpExecutor.doRequest(requestOptions, response => {
        if (!checkIsRangesSupported(response, reject)) {
          return
        }

        response.on("data", dataHandler)
        response.on("end", () => resolve())
      })
      this.httpExecutor.addErrorAndTimeoutHandlers(request, reject)
      request.end()
    })
开发者ID:ledinhphuong,项目名称:electron-builder,代码行数:12,代码来源:DifferentialDownloader.ts

示例2: copyData

        w = (index: number) => {
          if (index >= tasks.length) {
            if (this.fileMetadataBuffer != null) {
              firstStream.write(this.fileMetadataBuffer)
            }
            firstStream.end()
            return
          }

          const operation = tasks[index++]
          if (operation.kind === OperationKind.COPY) {
            copyData(operation, firstStream, oldFileFd, reject, () => w(index))
          }
          else {
            const requestOptions = this.createRequestOptions("get", actualUrl)
            const range = `bytes=${operation.start}-${operation.end - 1}`
            requestOptions.headers!!.Range = range;
            (requestOptions as any).redirect = "manual"

            const debug = this.logger.debug
            if (debug != null) {
              debug(`effective url: ${actualUrl == null ? "" : removeQuery(actualUrl)}, range: ${range}`)
            }

            const request = this.httpExecutor.doRequest(requestOptions, response => {
              // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.
              if (response.statusCode >= 400) {
                reject(createHttpError(response))
              }

              response.pipe(firstStream, {
                end: false
              })
              response.once("end", () => {
                if (++attemptCount === 100) {
                  attemptCount = 0
                  setTimeout(() => w(index), 1000)
                }
                else {
                  w(index)
                }
              })
            })
            request.on("redirect", (statusCode: number, method: string, redirectUrl: string) => {
              this.logger.info(`Redirect to ${removeQuery(redirectUrl)}`)
              actualUrl = redirectUrl
              request.followRedirect()
            })
            this.httpExecutor.addErrorAndTimeoutHandlers(request, reject)
            request.end()
          }
        }
开发者ID:ledinhphuong,项目名称:electron-builder,代码行数:52,代码来源:DifferentialDownloader.ts

示例3: createReadStream

      const w = (index: number) => {
        if (index >= operations.length) {
          firstStream.end(this.fileMetadataBuffer)
          return
        }

        const operation = operations[index++]

        if (operation.kind === OperationKind.COPY) {
          const readStream = createReadStream(this.options.oldPackageFile, {
            fd: oldFileFd,
            autoClose: false,
            start: operation.start,
            // end is inclusive
            end: operation.end - 1,
          })
          readStream.on("error", reject)
          readStream.once("end", () => w(index))
          readStream.pipe(firstStream, {
            end: false
          })
        }
        else {
          // https://github.com/electron-userland/electron-builder/issues/1523#issuecomment-327084661
          // todo to reduce http requests we need to consolidate non sequential download operations (Multipart ranges)
          const requestOptions = this.createRequestOptions("get")
          requestOptions.headers!!.Range = `bytes=${operation.start}-${operation.end - 1}`
          const request = this.httpExecutor.doRequest(requestOptions, response => {
            // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.
            if (response.statusCode >= 400) {
              reject(new HttpError(response))
            }

            response.pipe(firstStream, {
              end: false
            })
            response.once("end", () => w(index))
          })
          this.httpExecutor.addErrorAndTimeoutHandlers(request, reject)
          request.end()
        }
      }
开发者ID:jwheare,项目名称:electron-builder,代码行数:42,代码来源:differentialPackage.ts

示例4: BluebirdPromise

    return new BluebirdPromise((resolve, reject) => {
      const request = this.httpExecutor.doRequest(requestOptions, response => {
        // Electron net handles redirects automatically, our NodeJS test server doesn't use redirects - so, we don't check 3xx codes.
        if (response.statusCode >= 400) {
          reject(new HttpError(response))
        }

        if (response.statusCode !== 206) {
          const acceptRanges = safeGetHeader(response, "accept-ranges")
          if (acceptRanges == null || acceptRanges === "none") {
            reject(new Error("Server doesn't support Accept-Ranges"))
          }
        }

        response.on("data", dataHandler)
        response.on("end", () => {
          resolve()
        })
      })
      this.httpExecutor.addErrorAndTimeoutHandlers(request, reject)
      request.end()
    })
开发者ID:jwheare,项目名称:electron-builder,代码行数:22,代码来源:differentialPackage.ts


注:本文中的builder-util-runtime.HttpExecutor.addErrorAndTimeoutHandlers方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。