简化 for 循环以根据 JavaScript 中的条件查找数组中的项目(异步返回)

Simplifying a for loop to find an item in an array (returned asynchronously) by condition in JavaScript

我有一个名为 getItems 的函数,它异步地 returns 对象数组。每个对象都有一个 isOccupied 方法,returns 一个布尔值。我写了一个函数,它接受一个索引和 returns 数组 isOccupied 中第一个索引项是真还是假。

async itemIsOccupied(index) {
 return getItems().then(items => {
   if (items.length - 1 < index) return false;
   return items[index].isOccupied()
 });
}

这工作正常,但我必须使用异步函数来获取数组这一事实使它变得冗长。有没有办法简化这个?

我会像这样稍微清理一下...

async itemIsOccupied(index) {
  const items = await getItems();
  return index < items.length && items[index].isOccupied();
}