Skip to content

Commit fe92f99

Browse files
committed
More fixes for loadXXX retry logic.
1 parent 508a22b commit fe92f99

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed

Source/Core/loadImage.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,20 @@ define([
106106

107107
return promise
108108
.otherwise(function(e) {
109+
//Don't retry cancelled or otherwise aborted requests
110+
if (request.state !== RequestState.FAILED) {
111+
return when.reject(e);
112+
}
113+
109114
return resource.retryOnError(e)
110115
.then(function(retry) {
111116
if (retry) {
112117
// Reset request so it can try again
113118
request.state = RequestState.UNISSUED;
114119
request.deferred = undefined;
115120

116-
return makeRequest(resource);
121+
return makeRequest(resource, allowCrossOrigin);
117122
}
118-
119123
return when.reject(e);
120124
});
121125
});

Source/Core/loadJsonp.js

+14-15
Original file line numberDiff line numberDiff line change
@@ -123,22 +123,21 @@ define([
123123

124124
return promise
125125
.otherwise(function(e) {
126-
if (request.state === RequestState.FAILED) {
127-
return resource.retryOnError(e)
128-
.then(function(retry) {
129-
if (retry) {
130-
// Reset request so it can try again
131-
request.state = RequestState.UNISSUED;
132-
request.deferred = undefined;
133-
134-
return makeRequest(resource, callbackParameterName, functionName);
135-
}
136-
137-
return when.reject(e);
138-
});
126+
if (request.state !== RequestState.FAILED) {
127+
return when.reject(e);
139128
}
140-
141-
return when.reject(e);
129+
return resource.retryOnError(e)
130+
.then(function(retry) {
131+
if (retry) {
132+
// Reset request so it can try again
133+
request.state = RequestState.UNISSUED;
134+
request.deferred = undefined;
135+
136+
return makeRequest(resource, callbackParameterName, functionName);
137+
}
138+
139+
return when.reject(e);
140+
});
142141
});
143142
}
144143

Source/Core/loadWithXhr.js

+14-14
Original file line numberDiff line numberDiff line change
@@ -114,22 +114,22 @@ define([
114114
return data;
115115
})
116116
.otherwise(function(e) {
117-
if ((request.state === RequestState.FAILED) && defined(optionsOrResource.retryOnError)) {
118-
return optionsOrResource.retryOnError(e)
119-
.then(function(retry) {
120-
if (retry) {
121-
// Reset request so it can try again
122-
request.state = RequestState.UNISSUED;
123-
request.deferred = undefined;
124-
125-
return makeRequest(optionsOrResource);
126-
}
127-
128-
return when.reject(e);
129-
});
117+
if ((request.state !== RequestState.FAILED) || !defined(optionsOrResource.retryOnError)) {
118+
return when.reject(e);
130119
}
131120

132-
return when.reject(e);
121+
return optionsOrResource.retryOnError(e)
122+
.then(function(retry) {
123+
if (retry) {
124+
// Reset request so it can try again
125+
request.state = RequestState.UNISSUED;
126+
request.deferred = undefined;
127+
128+
return makeRequest(optionsOrResource);
129+
}
130+
131+
return when.reject(e);
132+
});
133133
});
134134
}
135135

0 commit comments

Comments
 (0)