本文整理汇总了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()
})
示例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()
}
}
示例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()
}
}
示例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()
})