message: Breaking big fetch call down into multiple small calls.
  The DTR API was having trouble with the big one.
diff: @@ -21,9 +21,9 @@ class D2BulkFetcher {
  stores: D2Store[],
  platformSelection: number,
  mode: number
  - ): Promise<D2ItemFetchResponse[]> {
  + ): Promise<D2ItemFetchResponse[][]> {
  if (!stores.length) {
  - return Promise.resolve<D2ItemFetchResponse[]>([]);
  + return Promise.resolve<D2ItemFetchResponse[][]>([]);
  }
  const itemList = getItemList(stores, this._reviewDataCache);
  @@ -35,9 +35,9 @@ class D2BulkFetcher {
  mode: number,
  vendorSaleItems?: DestinyVendorSaleItemComponent[],
  vendorItems?: DestinyVendorItemDefinition[]
  - ): Promise<D2ItemFetchResponse[]> {
  + ): Promise<D2ItemFetchResponse[][]> {
  if ((vendorSaleItems && !vendorSaleItems.length) || (vendorItems && !vendorItems.length)) {
  - return Promise.resolve<D2ItemFetchResponse[]>([]);
  + return Promise.resolve<D2ItemFetchResponse[][]>([]);
  }
  const vendorDtrItems = getVendorItemList(this._reviewDataCache, vendorSaleItems, vendorItems);
  @@ -48,19 +48,33 @@ class D2BulkFetcher {
  itemList: D2ItemFetchRequest[],
  platformSelection: number,
  mode: number
  - ): Promise<D2ItemFetchResponse[]> {
  + ): Promise<D2ItemFetchResponse[][]> {
  if (!itemList.length) {
  - return Promise.resolve<D2ItemFetchResponse[]>([]);
  + return Promise.resolve<D2ItemFetchResponse[][]>([]);
  }
  - const promise = dtrFetch(
  + const size = 10;
  + const arrayOfArrays: D2ItemFetchRequest[][] = [];
  + for (let i = 0; i < itemList.length; i += size) {
  + arrayOfArrays.push(itemList.slice(i, i + size));
  + }
  +
  + const arrayOfPromises: Promise<D2ItemFetchResponse[]>[] = [];
  +
  + for (const arraySlice of arrayOfArrays) {
  + arrayOfPromises.push(
  + dtrFetch(
  `https://db-api.destinytracker.com/api/external/reviews/fetch?platform=${platformSelection}&mode=${mode}`,
  - itemList
  - ).then(handleD2Errors, handleD2Errors);
  + arraySlice
  + ).then(handleD2Errors, handleD2Errors)
  + );
  + }
  +
  + const promise4All = Promise.all<D2ItemFetchResponse[]>(arrayOfPromises);
  - loadingTracker.addPromise(promise);
  + loadingTracker.addPromise(promise4All);
  - return promise;
  + return promise4All;
  }
  /**
  @@ -68,7 +82,7 @@ class D2BulkFetcher {
  */
  bulkFetch(stores: D2Store[], platformSelection: number, mode: number) {
  this._getBulkFetchPromise(stores, platformSelection, mode).then((bulkRankings) =>
  - this.attachRankings(bulkRankings, stores)
  + bulkRankings.forEach((br) => this.attachRankings(br, stores))
  );
  }
  @@ -94,7 +108,7 @@ class D2BulkFetcher {
  mode,
  vendorSaleItems,
  vendorItems
  - ).then((bulkRankings) => this._addScores(bulkRankings));
  + ).then((bulkRankings) => bulkRankings.forEach((br) => this._addScores(br)));
  }
  attachRankings(bulkRankings: D2ItemFetchResponse[] | null, stores: D2Store[]): void {
  