/
githubmirror
/
docusaurus
Обзор
Документация
Войти
/
githubmirror
/
docusaurus
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/docusaurus-utils/src/jsUtils.ts
45 строк
1 KB
ozaki
refactor(utils): remove duplicated function (#9972)
29 мар 2024, 16:45
Не верифицирован
29 мар 2024, 16:45
8212471
Код
Авторство
О чём код?
/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /** * `Array#map` for async operations where order matters. * @param array The array to traverse. * @param action An async action to be performed on every array item. Will be * awaited before working on the next. * @returns The list of results returned from every `action(item)` */ export async function mapAsyncSequential<T, R>( array: T[], action: (t: T) => Promise<R>, ): Promise<R[]> { const results: R[] = []; for (const t of array) { const result = await action(t); results.push(result); } return results; } /** * `Array#find` for async operations where order matters. * @param array The array to traverse. * @param predicate An async predicate to be called on every array item. Should * return a boolean indicating whether the currently element should be returned. * @returns The function immediately returns the first item on which `predicate` * returns `true`, or `undefined` if none matches the predicate. */ export async function findAsyncSequential<T>( array: T[], predicate: (t: T) => Promise<boolean>, ): Promise<T | undefined> { for (const t of array) { if (await predicate(t)) { return t; } } return undefined; }