INNER CODE UNIT · JavaScript
ChainRequest
astefanutti/kubebox · lib/client.js:13
class ChainRequest {
constructor(...requests) {
this.requests = requests;
}
get({ generator, readable, async = true, cancellable = false, rejectOnAbort = false } = {}) {
let cancellation = Function.prototype;
let promise = this.requests.slice(0, -1)
.reduce((promise, request) => {
if (typeof request === 'object') {
return promise.then(request.onFulfilled || (response => response), request.onRejected);
} else {
return promise.then(response => {
const { promise, cancellation: c } = request(response).get({ cancellable: true, rejectOnAbort });
cancellation = c;
return promise;
});