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 搜索时要有次序。
如果您不关心顺序,请禁用此选项以提高性能。