Wrap an async iterable calling an errback if an error is caught while iterating it. Similar to :func:`scrapy.utils.defer.iter_errback`.
(
aiterable: AsyncIterator[_T],
errback: Callable[Concatenate[Failure, _P], Any],
*a: _P.args,
**kw: _P.kwargs,
)
| 362 | |
| 363 | |
| 364 | async def aiter_errback( |
| 365 | aiterable: AsyncIterator[_T], |
| 366 | errback: Callable[Concatenate[Failure, _P], Any], |
| 367 | *a: _P.args, |
| 368 | **kw: _P.kwargs, |
| 369 | ) -> AsyncIterator[_T]: |
| 370 | """Wrap an async iterable calling an errback if an error is caught while |
| 371 | iterating it. Similar to :func:`scrapy.utils.defer.iter_errback`. |
| 372 | """ |
| 373 | it = aiter(aiterable) |
| 374 | while True: |
| 375 | try: |
| 376 | yield await anext(it) |
| 377 | except StopAsyncIteration: |
| 378 | break |
| 379 | except Exception: |
| 380 | errback(failure.Failure(), *a, **kw) |
| 381 | |
| 382 | |
| 383 | @overload |
no outgoing calls