✒️SAP BTPFIORI / ¿Cómo trabajar con código asíncrono en SAPUI5? Por Roberto Santucho
¿Cómo trabajar con código asíncrono en SAPUI5?

1. LAS LLAMADAS ASINCRONAS
Podemos tener operaciones de entrada y salida de los siguientes tipos:
- Sincronas y bloqueantes: TODA la operacion se hace de una vez, bloqueando el flujo de ejecucion. La respuesta se ejecuta inmediatamente despues de terminar la operacion.
- Sincronas y no-bloqueantes: usa alguna tecnica de polling para evitar el bloqueo en la primera fase. SE NECESITARAN SUCESIVOS INTENTOS HASTA COMPLETAR LA OPERACION. La respuesta se ejecuta inmediatamente despues de terminar la operacion.
- Asincronas y no-bloqueantes: la peticion vuelve inmediatamente para evitar el bloqueo. Se envia una notificacion una vez que la operacon se ha completado. y se encola la funcion que procesa la respuesta callback
SINCRONICAS VS ASINCRONAS se refieren a CUANDO TENDRA LUGAR LA RESPUESTA:
- Sincrono: DEBEMOS ESPERAR A QUE SE COMPLETE PARA RPCESAR EL RESULTADO
- Asincrono: LA RESPUESTA ES PROCESADA EN DIFERIDO.
2. EL MODELO DE JS
| JS utiliza un modelo ASINCRONO Y NO BLOQUEANTE, con un loop de eventos implementado con un unico thread para su interfacse de entrada/salida. |
3. LOS PATRONES ASINCRONICOS
Una funcion callback es una funcion de primer nivel que se pasa a otra funcion como variable y esta es ejecutada en algun punto de la ejecucion de funcion que la recibe. SERIA COMO LA PREGUNTA QUE QUIERES HACER UNA VEZ QUE TU OPERACION ASINCRONA TERMINE. ESO QUE QUIERES QUE HAGA, SE EJECUTARA EN ALGUN MOMENTO EN EL FUTURO, GRACIAS AL MECANISMO QUE IMPLEMENTA EL BUCLE DE EVENTOS.
4. LAS PROMESAS
- es usado para comunicaciones asincronas
- representa un valor QUE PUEDE ESTAR DISPONIBLE AHORA, EN EL FUTURO O NUNCA.
- es un objeto que representa la terminacion o el fracaso eventual de una operacion asincrona.
- el beneficio de las promesas ES EL ENCADENAMIENTO.
- Estados de las promesas:
- Pending
- Fulfilled
- Rejected
SON LA MEJOR FORMA DE ENCAPSULAR LA LOGICA ASINCRONA LOGRANDO EVITAR TENER QUE ANIDAR CALLBACKS Y HACIENDO MUCHO MAS LEGIBLE NUESTRO CODIGO Y MENOS PROPENSO A ERRORES.
5. LOS LLAMADOS ODATA DE FORMA ASINCRONICA
se comporta como con promesas, en el metodo read del servicio que se ejecuta de forma asincronica, se pasan 2 metodos, uno para ejecutar si la llamada fue en forma exitosa y el otro si fallo.
var odataModel = oModel;
odataModel.read(this._entitySet, {
async: true,
success: jQuery.proxy(this._readODataOnSuccess, this),
error: jQuery.proxy(this._readOData, this)
}...
6. LA HABILITACION DE LA CARGA ASINCRONA EN BOOTSTRAP
Configuracion correcta del bootstrap para una app SAPUI5
TAMBIEN SETEAR "async": true para la vista inicial y para el router. EVITEMOS SIEMPRE LOS USOS DE JQUERY.SAP.REQUIRE PARA PERMITIR QUE LOS MODULOS SE CARGE EN FORMA ASINCRONA, USEMOS SAP.UI.DEFINA PARA CRAR MODULES(CONTR. O COMPO.) O SAP.UI.REQUIRE EN OTROS CASOS.
 
 
 
Sobre el autor
Publicación académica de Roberto Hernan Santucho, en su ámbito de estudios para la Carrera Consultor SAP BTP Fiori.
Roberto Hernan Santucho
Profesión: Ingeniero en Sistemas - Mexico - Legajo: VA51C
✒️Autor de: 43 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Roberto Santucho







Disponibilidad Laboral: FullTime


















