getPromise() {
		/**
		 * @param {number} i index
		 * @returns {Promise<T>} promise with the data
		 */
		const next = i =>
			this._items[i].getPromise().then(result => {
				if (result !== undefined) return result;
				if (++i < this._items.length) return next(i);
			});
		return next(0);
	}
@template T
@returns {Promise<T>} promise with the data