promise ​

异步相关的工具函数。

sleep ​

基于 Promise 的延时函数,是 setTimeout 的 Promise 封装。

类型 ​

ts
function sleep(ms: number, callback?: Fn<any>): Promise<void>

参数 ​

参数类型说明
msnumber等待的毫秒数
callbackFn<any>?可选的回调函数,在延时结束后执行

返回值 ​

Promise<void> — 在指定毫秒数后 resolve。

示例 ​

ts
import { sleep } from '@lonewolfyx/utils'

// 基本用法:等待 1 秒
await sleep(1000)

// 带回调函数
await sleep(1000, () => {
    console.log('1 秒后执行')
})

// 在异步流程中使用
async function fetchData() {
    console.log('开始请求...')
    await sleep(2000)
    console.log('2 秒后继续')
}

importDefault ​

动态导入模块并返回其默认导出,等价于 (await import(name)).default。

类型 ​

ts
function importDefault<T extends Promise<any>>(mod: T): Promise<T extends { default: infer U } ? U : Awaited<T>>
function importDefault<T>(name: string): Promise<T extends { default: infer U } ? U : T>

支持两种调用方式:

  • 传入 import():类型自动推导,无需手动指定泛型。
  • 传入字符串:需手动指定 typeof import('module-name')。

参数 ​

参数类型说明
modPromise<any>import() 返回的模块 Promise
namestring模块名称或路径

返回值 ​

模块的默认导出;若模块没有 default,则返回整个模块。

示例 ​

ts
import { importDefault } from '@lonewolfyx/utils'

// 推荐:直接传 import(),类型自动推导
const lodash = await importDefault(import('lodash'))
lodash.merge({ a: 1 }, { b: 2 })

// 传入字符串,需手动指定类型
const lodash = await importDefault<typeof import('lodash')>('lodash')

// 导入 Node.js 内置模块(CJS 兼容)
const fs = await importDefault(import('node:fs'))
fs.readFileSync('/path/to/file', 'utf-8')