private static async _fetchResultPages()

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);
    }