[RFC]: Refactor mapFunAsync to Include Status Tracking
- Lenguaje dominante
- JavaScript
- Estrellas
- 6k
- Forks
- 1.3k
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 611
Descripción
### Description
This RFC proposes refactoring the mapFunAsync function in @stdlib/utils-async-map-function to return an object that allows querying the status of in-flight asynchronous operations. This aligns with the goal of achieving feature parity with async.js while improving observability of async execution states.
### Related Issues
Related issues #9 which states that we need to achive parity with async.js.
Changes:
Modified mapFunAsync to return an object containing:
status: Tracks the state (pending, completed, or error).
getStatus(): Method to retrieve the current state.
cancel(): Method to cancel execution (if applicable in the future).
Updated tests to validate the new behavior.
Updated documentation to reflect the API changes.
Motivation:
This refactor improves the usability of mapFunAsync by enabling users to track ongoing async operations, which is particularly useful in long-running tasks or when debugging async workflows.
@kgryte @Planeshifter @steff456
### Questions
No.
### Other
No.
### Checklist
- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [x] Searched for existing issues and pull requests.
- [x] The issue name begins with `RFC:`.
Guía de contribución
Línea de trabajo
Start at the mapFunAsync implementation in @stdlib/utils-async-map-function and review its existing tests and documentation. Compare the proposed status, getStatus(), and cancel() API with the async.js parity goal and related issue #9. Done means the refactored API, tests, and documentation consistently describe and validate status tracking.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- backend
- Tipo de issue
- Refactorización
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100