本文整理匯總了TypeScript中neuroglancer/util/http_request.openShardedHttpRequest函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript openShardedHttpRequest函數的具體用法?TypeScript openShardedHttpRequest怎麽用?TypeScript openShardedHttpRequest使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了openShardedHttpRequest函數的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: start
function start(credentials: CredentialsWithGeneration<Credentials>) {
if (xhr === null) {
return;
}
xhr = openShardedHttpRequest(instance.serverUrls, httpCall.path, httpCall.method);
xhr.responseType = httpCall.responseType;
xhr.setRequestHeader(
'Authorization',
`${credentials.credentials.tokenType} ${credentials.credentials.accessToken}`);
xhr.onloadend = function(this: XMLHttpRequest) {
if (xhr === null) {
return;
}
let status = this.status;
if (status >= 200 && status < 300) {
cancellationToken.remove(abort);
resolve(this.response);
} else if (status === 401) {
// 401: Authorization needed. OAuth2 token may have expired.
credentialsProvider.get(credentials, cancellationToken).then(start);
} else if (status === 504 || status === 503) {
// 503: Service unavailable. Retry.
// 504: Gateway timeout. Can occur if the server takes too long to reply. Retry.
credentialsProvider.get(/*invalidToken=*/undefined, cancellationToken).then(start);
} else {
cancellationToken.remove(abort);
reject(HttpError.fromXhr(this));
}
};
xhr.send(httpCall.payload);
}
示例2: start
function start(token: Token) {
if (xhr === null) {
--numPendingRequests;
return;
}
xhr = openShardedHttpRequest(INSTANCE_BASE_URLS[instance], httpCall.path, httpCall.method);
xhr.responseType = httpCall.responseType;
xhr.setRequestHeader('Authorization', `${token['tokenType']} ${token['accessToken']}`);
xhr.onloadend = function(this: XMLHttpRequest) {
if (xhr === null) {
--numPendingRequests;
return;
}
let status = this.status;
if (status >= 200 && status < 300) {
--numPendingRequests;
cancellationToken.remove(abort);
resolve(this.response);
} else if (status === 401) {
// Authorization needed.
getToken(token).then(start);
} else if (status === 504) {
// Gateway timeout can occur if the server takes too long to reply. Retry.
getToken().then(start);
} else {
--numPendingRequests;
cancellationToken.remove(abort);
reject(HttpError.fromXhr(this));
}
};
xhr.send(httpCall.payload);
}
示例3: start
function start(token: Token) {
if (xhr === null) {
--numPendingRequests;
return;
}
xhr = openShardedHttpRequest(INSTANCE_BASE_URLS[instance], path, method);
xhr.responseType = responseType;
xhr.setRequestHeader('Authorization', `${token['tokenType']} ${token['accessToken']}`);
xhr.onloadend = function(this: XMLHttpRequest) {
if (xhr === null) {
--numPendingRequests;
return;
}
let status = this.status;
if (status >= 200 && status < 300) {
--numPendingRequests;
resolve(this.response);
} else if (status === 403 || status === 401) {
// Authorization needed.
getToken(token).then(start);
} else {
--numPendingRequests;
reject(HttpError.fromXhr(this));
}
};
xhr.send();
}
示例4: downloadFragment
downloadFragment(chunk: FragmentChunk, cancellationToken: CancellationToken) {
const {parameters} = this;
const requestPath = `/api/node/${parameters['nodeKey']}/${parameters['dataInstanceKey']}/key/${
chunk.fragmentId}.ngmesh`;
return sendHttpRequest(
openShardedHttpRequest(parameters.baseUrls, requestPath), 'arraybuffer',
cancellationToken)
.then(response => decodeFragmentChunk(chunk, response));
}
示例5: getVolumeInfo
export function getVolumeInfo(hostnames: string[], token: string) {
let fullKey = JSON.stringify({'hostnames': hostnames, 'token': token});
let result = existingVolumeResponses.get(fullKey);
if (result !== undefined) {
return result;
}
let promise = sendHttpRequest(openShardedHttpRequest(hostnames, `/ocp/ca/${token}/info/`), 'json');
existingVolumeResponses.set(fullKey, promise);
return promise;
}
示例6: getShardedVolume
export function getShardedVolume(baseUrls: string[], path: string) {
let fullKey = stableStringify({'baseUrls': baseUrls, 'path': path});
let existingResult = existingVolumes.get(fullKey);
if (existingResult !== undefined) {
return existingResult;
}
let promise = sendHttpRequest(openShardedHttpRequest(baseUrls, path + '/info'), 'json')
.then(response => new MultiscaleVolumeChunkSource(baseUrls, path, response));
existingVolumes.set(fullKey, promise);
return promise;
}
示例7: download
download(chunk: VolumeChunk) {
let params = this.parameters;
let {chunkGridPosition} = chunk;
// Needed by decoder.
chunk.chunkDataSize = this.spec.chunkDataSize;
let path = `/api/node/${params['nodeKey']}/${params['dataInstanceKey']}/tile/${params['dims']}/${params['level']}/${chunkGridPosition[0]}_${chunkGridPosition[1]}_${chunkGridPosition[2]}`;
handleChunkDownloadPromise(
chunk, sendHttpRequest(openShardedHttpRequest(params.baseUrls, path), 'arraybuffer'),
this.chunkDecoder);
}
示例8: getPublicTokens
export function getPublicTokens(hostnames: string[]) {
let key = JSON.stringify(hostnames);
let result = publicTokenPromises.get(key);
if (result !== undefined) {
return result;
}
let newResult =
sendHttpRequest(openShardedHttpRequest(hostnames, '/ocp/ca/public_tokens/'), 'json')
.then(value => parseArray(value, verifyString));
publicTokenPromises.set(key, newResult);
return newResult;
}
示例9: download
download(chunk: SkeletonChunk, cancellationToken: CancellationToken) {
const {parameters} = this;
let bodyid = `${chunk.objectId}`;
const path = `/api/node/${parameters['nodeKey']}/${parameters['dataInstanceKey']}/key/` +
bodyid + '_swc';
return sendHttpRequest(
openShardedHttpRequest(parameters.baseUrls, path), 'arraybuffer', cancellationToken)
.then(response => {
let enc = new TextDecoder('utf-8');
decodeSwcSkeletonChunk(chunk, enc.decode(response));
});
}