permet donc dire que j'avais une séquence enchaînée comme ce qui suit:Lodash - comment effectuer la vérification des erreurs dans l'ordre à chaîne longue
let amount = _
.chain(selectedItemsArray)
.map(item => _.find(availableItems, {id: item.id})
//how can I determine that ALL items were found right here?
.filter('price_money')
...
Notez le commentaire dans le code ci-dessus. Il est possible que le selectedItemsArray
ne soit pas à jour, donc certains éléments sélectionnés peuvent ne pas être dans availableItems
. Donc, ma pensée initiale était d'utiliser un .tap
ou .thru
(probablement appuyez sur) pour faire quelque chose comme _.every(selectedItems, _.isObject)
ou quelque chose de similaire pour attraper l'état d'erreur où tous les éléments sont trouvés et jeter une erreur si tous les éléments ont été trouvés. Cela semble étrange cependant ... de meilleures façons de gérer ce type d'erreur de vérification en milieu de séquence?
Quelque chose comme cela fonctionne (au moins je peux jeter une erreur), mais il semble que j'utilise tap
pour quelque chose, ce n'est pas destiné à:
.tap(items => {
if (!_.every(items, _.isObject)) throw new Error('Some selected items are no longer available');
})