static createFallbackPromiseChain(array, callback) {
    return array.reduce((promise, elem) => {
      return promise.catch(() => callback(elem));
    }, Promise.reject());
  }
Creates a promise chain that calls the given callback for each element in
the array in a catch of a promise.

e.g.:
Promise.reject().catch(callback(array[0])).catch(callback(array[1]));

@param {!Array<ELEM>} array
@param {function(ELEM): !Promise<RESULT>} callback
@return {!Promise<RESULT>}
@template ELEM,RESULT