我想判断formVnodeList.value.map(item => item.validate())中如果存在[[PromiseState]]: "rejected"就提示具体哪个没填
时间: 2024-01-21 20:19:21 浏览: 116
可以使用 `Promise.all()` 方法来等待所有的 Promise 都执行完毕,然后再判断是否存在 rejected 状态的 Promise。
代码示例:
```javascript
Promise.all(formVnodeList.value.map(item => item.validate()))
.then(results => {
if (results.some(result => result.state === 'rejected')) {
const rejectedIndex = results.findIndex(result => result.state === 'rejected')
console.log(`第 ${rejectedIndex + 1} 个输入框未填写!`)
} else {
// 所有输入框都已填写
}
})
```
在这个示例中,我们使用 `Promise.all()` 方法等待所有 Promise 都执行完毕,并且将所有 Promise 的结果保存在 `results` 数组中。然后,我们使用 `Array.prototype.some()` 方法来判断 `results` 数组中是否存在状态为 rejected 的 Promise。如果存在,我们可以使用 `Array.prototype.findIndex()` 方法找到第一个 rejected 状态的 Promise 的索引,并输出提示信息。如果所有 Promise 的状态都是 fulfilled,那么说明所有输入框都已填写,可以进行下一步操作。
阅读全文