in src/Result.ts [131:170]
private static async _fetchResultPages(
txnId: string,
executeResult: ExecuteStatementResult,
communicator: Communicator
): Promise<Result> {
let currentPage: Page = executeResult.FirstPage;
let readIO: number = executeResult.ConsumedIOs != null ? executeResult.ConsumedIOs.ReadIOs : null;
let processingTime: number =
executeResult.TimingInformation != null ? executeResult.TimingInformation.ProcessingTimeMilliseconds : null;
const pageValuesArray: ValueHolder[][] = [];
if (currentPage.Values && currentPage.Values.length > 0) {
pageValuesArray.push(currentPage.Values);
}
while (currentPage.NextPageToken) {
const fetchPageResult: FetchPageResult =
await communicator.fetchPage(txnId, currentPage.NextPageToken);
currentPage = fetchPageResult.Page;
if (currentPage.Values && currentPage.Values.length > 0) {
pageValuesArray.push(currentPage.Values);
}
if (fetchPageResult.ConsumedIOs != null) {
readIO += fetchPageResult.ConsumedIOs.ReadIOs;
}
if (fetchPageResult.TimingInformation != null) {
processingTime += fetchPageResult.TimingInformation.ProcessingTimeMilliseconds;
}
}
const ionValues: dom.Value[] = [];
pageValuesArray.forEach((valueHolders: ValueHolder[]) => {
valueHolders.forEach((valueHolder: ValueHolder) => {
ionValues.push(dom.load(Result._handleBlob(valueHolder.IonBinary)));
});
});
const ioUsage: IOUsage = readIO != null ? new IOUsage(readIO) : null;
const timingInformation = processingTime != null ? new TimingInformation(processingTime) : null;
return new Result(ionValues, ioUsage, timingInformation);
}