<!--
Copyright (C) 2017 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<script>
(function(window) {
  'use strict';

  window.Gerrit = window.Gerrit || {};

  /** @polymerBehavior Gerrit.AsyncForeachBehavior */
  Gerrit.AsyncForeachBehavior = {
    /**
     * @template T
     * @param {!Array<T>} array
     * @param {!Function} fn
     * @return {!Promise<undefined>}
     */
    asyncForeach(array, fn) {
      if (!array.length) { return Promise.resolve(); }
      return fn(array[0]).then(() => this.asyncForeach(array.slice(1), fn));
    },
  };
})(window);
</script>
