@grafana/runtime: Add cancellation of queries to DataSourceWithBackend (#22818)

This commit is contained in:
Marcus Efraimsson 2020-03-18 00:12:03 +01:00 committed by GitHub
parent 8edf8e3982
commit eb96a8fcc8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -37,13 +37,10 @@ export class DataSourceWithBackend<
* Ideally final -- any other implementation may not work as expected
*/
query(request: DataQueryRequest): Observable<DataQueryResponse> {
const { targets, intervalMs, maxDataPoints, range } = request;
let expressionCount = 0;
const { targets, intervalMs, maxDataPoints, range, requestId } = request;
const orgId = config.bootData.user.orgId;
const queries = targets.map(q => {
if (q.datasource === ExpressionDatasourceID) {
expressionCount++;
return {
...q,
datasourceId: this.id,
@ -65,7 +62,6 @@ export class DataSourceWithBackend<
});
const body: any = {
expressionCount,
queries,
};
if (range) {
@ -75,10 +71,16 @@ export class DataSourceWithBackend<
}
const req: Promise<DataQueryResponse> = getBackendSrv()
.post('/api/ds/query', body)
.datasourceRequest({
url: '/api/ds/query',
method: 'POST',
data: body,
requestId,
})
.then((rsp: any) => {
return this.toDataQueryResponse(rsp);
return this.toDataQueryResponse(rsp?.data);
});
return from(req);
}