p-locate

中文文档
7.0.0发布于 2026/02/03MITTypeScriptES Module近 30 天下载 12.3亿

获取满足所提供的测试函数的第一个已完成的承诺

中文使用文档
文档目录5 节
  1. 安装
  2. 用法
  3. API
  4. 定位(输入、测试、选项?)
  5. 相关

p-locate

获取满足所提供的测试函数的第一个已完成的承诺

把它想象成异步版本的 Array#find。

安装

npm install p-locate

用法

在这里,我们按照数组顺序找到磁盘上存在的第一个文件。

import {pathExists} from 'path-exists';
import pLocate from 'p-locate';

const files = [
    'unicorn.png',
    'rainbow.png', // Only this one actually exists on disk
    'pony.png'
];

const foundPath = await pLocate(files, file => pathExists(file));

console.log(foundPath);
//=> 'rainbow.png'

以上只是一个例子。使用 locate-path 如果你需要这个。

API

定位(输入、测试、选项?)

返回一个 Promise 这是在 tester 解析为 true 或者可迭代对象完成,或者如果任何承诺被拒绝,则拒绝。完成的值是当前可迭代的值或 undefined 如果 tester 从未下定决心 true。

输入

类型: Iterable<Promise | unknown> | AsyncIterable<unknown>

要测试的承诺/值的可迭代或异步可迭代对象。

当一个 AsyncIterable 是给定的,它是连续迭代的 concurrency 和 preserveOrder 选项不适用。

测试人员(元素)

类型: Function

此函数将从 input 期望返回a Promise<boolean> 或 boolean。

选项

类型: object

并发性

类型: number
默认值: Infinity
最低: 1

返回的并发待处理承诺的数量 tester。

preserveOrder

类型: boolean
默认值: true

保存 input 搜索时要有次序。

如果您不关心顺序,请禁用此选项以提高性能。

版本与发布记录

p-locate 共发布 8 个版本,首次发布于 2016/11/20;过去 12 个月发布了 1 个版本。

版本发布日期距今
7.0.0latest2026/02/039 个月前
6.0.02021/08/255 年前
5.0.02020/08/116 年前
4.1.02019/04/047 年前
4.0.02019/03/127 年前
3.0.02018/06/158 年前

关于 p-locate 的常见问题

p-locate 是什么?

获取满足所提供的测试函数的第一个已完成的承诺

如何安装 p-locate?

在项目目录运行 npm install p-locate,或使用 pnpm add / yarn add / bun add。

p-locate 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

p-locate 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

p-locate 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

p-locate 可以商用吗?

p-locate 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

p-locate 的下载量有多少?

根据 npm 官方下载统计,p-locate 在 2026/10/04 – 2026/11/02 这 30 天内被下载 1,225,119,762 次,日均约 40,837,325 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

p-locate 还在维护吗?

最新版本 7.0.0 发布于 2026/02/03(9 个月前);至今共发布 8 个版本,其中过去 12 个月发布了 1 个;首次发布于 2016/11/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。