[maps] abort sync data if any data request fails (#87381)

* [maps] abort sync data if any data request fails

* review feedback

* fix broken rename of e to error

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Nathan Reese 2021-01-11 12:28:24 -07:00 committed by GitHub
parent 2658855cb7
commit 89e7cd6808
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -384,14 +384,11 @@ export class VectorLayer extends AbstractLayer {
join, join,
propertiesMap, propertiesMap,
}; };
} catch (e) { } catch (error) {
if (!(e instanceof DataRequestAbortError)) { if (!(error instanceof DataRequestAbortError)) {
onLoadError(sourceDataId, requestToken, `Join error: ${e.message}`); onLoadError(sourceDataId, requestToken, `Join error: ${error.message}`);
} }
return { throw error;
dataHasChanged: true,
join,
};
} }
} }
@ -430,7 +427,7 @@ export class VectorLayer extends AbstractLayer {
}; };
} }
async _performInnerJoins( _performInnerJoins(
sourceResult: SourceResult, sourceResult: SourceResult,
joinStates: JoinState[], joinStates: JoinState[],
updateSourceData: DataRequestContext['updateSourceData'] updateSourceData: DataRequestContext['updateSourceData']
@ -538,9 +535,7 @@ export class VectorLayer extends AbstractLayer {
if (!(error instanceof DataRequestAbortError)) { if (!(error instanceof DataRequestAbortError)) {
onLoadError(dataRequestId, requestToken, error.message); onLoadError(dataRequestId, requestToken, error.message);
} }
return { throw error;
refreshed: false,
};
} }
} }
@ -646,6 +641,7 @@ export class VectorLayer extends AbstractLayer {
if (!(error instanceof DataRequestAbortError)) { if (!(error instanceof DataRequestAbortError)) {
onLoadError(dataRequestId, requestToken, error.message); onLoadError(dataRequestId, requestToken, error.message);
} }
throw error;
} }
} }
@ -736,6 +732,7 @@ export class VectorLayer extends AbstractLayer {
stopLoading(dataRequestId, requestToken, formatters, nextMeta); stopLoading(dataRequestId, requestToken, formatters, nextMeta);
} catch (error) { } catch (error) {
onLoadError(dataRequestId, requestToken, error.message); onLoadError(dataRequestId, requestToken, error.message);
throw error;
} }
} }
@ -757,19 +754,26 @@ export class VectorLayer extends AbstractLayer {
if (this.isLoadingBounds()) { if (this.isLoadingBounds()) {
return; return;
} }
await this._syncSourceStyleMeta(syncContext, source, style);
await this._syncSourceFormatters(syncContext, source, style);
const sourceResult = await this._syncSource(syncContext, source, style);
if (
!sourceResult.featureCollection ||
!sourceResult.featureCollection.features.length ||
!this.hasJoins()
) {
return;
}
const joinStates = await this._syncJoins(syncContext, style); try {
await this._performInnerJoins(sourceResult, joinStates, syncContext.updateSourceData); await this._syncSourceStyleMeta(syncContext, source, style);
await this._syncSourceFormatters(syncContext, source, style);
const sourceResult = await this._syncSource(syncContext, source, style);
if (
!sourceResult.featureCollection ||
!sourceResult.featureCollection.features.length ||
!this.hasJoins()
) {
return;
}
const joinStates = await this._syncJoins(syncContext, style);
this._performInnerJoins(sourceResult, joinStates, syncContext.updateSourceData);
} catch (error) {
if (!(error instanceof DataRequestAbortError)) {
throw error;
}
}
} }
_getSourceFeatureCollection() { _getSourceFeatureCollection() {