midash

与 lodash 拥有相似 API,基于 ES6+,体积更小的工具函数库,附带额外的异步工具函数。

  • 🔨 高频使用 API
  • 🕒 熟悉的 lodash API
  • 💪 支持 Tree Shaking
  • 👫 支持 Typescript
  • 🔥 体积更小 (基于 ES6+)
  • 📦 仅 2.5kb 的迷你库
  • 🚀 提供异步工具函数

安装

# yarn
$ yarn add midash
# pnpm
$ pnpm i midash
import { sum } from 'midash'

sum([1, 3, 5, 7, 9])

异步工具函数

midash 提供了几个有用的异步工具函数:

  • sleep(ms): 暂停执行指定的毫秒数。
  • retry(fn, options): 多次尝试执行函数,直到成功。
  • map(iterable, mapper, options): 异步映射可迭代对象,可控制并发数。
  • filter(iterable, filterer, options): 异步过滤可迭代对象,可控制并发数。

使用示例:

import { sleep, retry, map, filter } from 'midash'

// 暂停1秒
await sleep(1000)

// 最多尝试3次
const result = await retry(async () => {
  // 你的异步操作
}, { times: 3 })

// 异步映射数组,并发数为2
const mappedResults = await map([1, 2, 3, 4], async (num) => {
  await sleep(100)
  return num * 2
}, { concurrency: 2 })

// 异步过滤数组
const filteredResults = await filter([1, 2, 3, 4, 5], async (num) => {
  await sleep(100)
  return num % 2 === 0
})