Skip to content

Commit 60d8a88

Browse files
committed
Merge pull request #6677 from elastic/jasper/backport/6651/6673/4.5
[backport] PR #6651 to 4.5
2 parents 7a5a7ac + 7fe9e9c commit 60d8a88

4 files changed

Lines changed: 15 additions & 9 deletions

File tree

src/ui/public/courier/fetch/_call_client.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ define(function (require) {
1616
var executable = statuses.filter(isRequest);
1717
var execCount = executable.length;
1818

19+
if (!execCount) return Promise.resolve([]);
20+
1921
// resolved by respond()
2022
var esPromise;
2123
var defer = Promise.defer();

src/ui/public/courier/fetch/_fetch_these.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,26 @@ define(function (require) {
2323
}
2424

2525
function fetchWithStrategy(strategy, requests) {
26+
function replaceAbortedRequests() {
27+
requests = requests.map(r => r.aborted ? ABORTED : r);
28+
}
2629

27-
requests = requests.map(function (req) {
28-
return req.aborted ? ABORTED : req;
29-
});
30-
30+
replaceAbortedRequests();
3131
return startRequests(requests)
3232
.then(function () {
33+
replaceAbortedRequests();
3334
return callClient(strategy, requests);
3435
})
3536
.then(function (responses) {
37+
replaceAbortedRequests();
3638
return callResponseHandlers(requests, responses);
3739
})
3840
.then(function (responses) {
41+
replaceAbortedRequests();
3942
return continueIncomplete(strategy, requests, responses, fetchWithStrategy);
4043
})
4144
.then(function (responses) {
45+
replaceAbortedRequests();
4246
return responses.map(function (resp) {
4347
switch (resp) {
4448
case ABORTED:

src/ui/public/courier/fetch/request/__tests__/segmented.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ describe('ui/courier/fetch/request/segmented', () => {
2929
expect(returned.then).to.be.Function;
3030
});
3131

32-
it('does not call super.start() until promise is resolved', () => {
33-
expect(searchReqStart.called).to.be(false);
34-
$rootScope.$apply();
32+
it('calls super.start() synchronously', () => {
3533
expect(searchReqStart.called).to.be(true);
3634
});
3735
});

src/ui/public/courier/fetch/request/segmented.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ define(function (require) {
3939
SegmentedReq.prototype.start = function () {
4040
var self = this;
4141

42+
SearchReq.prototype.start.call(this);
43+
4244
this._complete = [];
4345
this._active = null;
4446
this._segments = [];
@@ -58,12 +60,12 @@ define(function (require) {
5860
// parameters via the handle
5961
if (_.isFunction(this._initFn)) this._initFn(this._handle);
6062
return this._createQueue().then(function (queue) {
63+
if (self.stopped) return;
64+
6165
self._all = queue.slice(0);
6266

6367
// Send the initial fetch status
6468
self._reportStatus();
65-
66-
return SearchReq.prototype.start.call(self);
6769
});
6870
};
6971

0 commit comments

Comments
 (0)