Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

330
Vistas
Implementando la interfaz IAsyncContentCreation en UI5

Para garantizar que sap.ui.core.UIComponent se cree de forma totalmente asincrónica, debemos implementar la interfaz IAsyncContentCreation :

 metadata: { interfaces: [ "sap.ui.core.IAsyncContentCreation" ], manifest: "json" }

Eso está totalmente bien.
Al explorar las muestras de aplicaciones de SAP, descubrí el siguiente fragmento de código, donde el nombre de la interfaz codificado y, por lo tanto, propenso a errores, se reemplaza con el código, que se puede verificar automáticamente:

 sap.ui.define([ "sap/ui/core/library", "sap/ui/core/UIComponent", … ], function(library, UIComponent, models, History) { "use strict"; return UIComponent.extend("sap.ui.demo.toolpageapp.Component", { metadata: { interfaces: [ library.IAsyncContentCreation ], manifest: "json" } … } }

Intenté verificar el contenido de la library en DevTools, pero obtengo una excepción ReferenceError en lugar de los valores de la library :

 Uncaught ReferenceError: library is not defined at eval (eval at init (Component.js:24), <anonymous>:1:1) at f.init (Component.js:24) at sap-ui-core.js:315 at f.constructor (sap-ui-core.js:315) at f.constructor (sap-ui-core.js:585) at f.constructor (library-preload.js:1154) at f [as constructor] (sap-ui-core.js:547) at new o1 (sap-ui-core.js:632) at H (sap-ui-core.js:628) at sap-ui-core.js:628

¿Cómo puedo asegurarme de que library.IAsyncContentCreation esté realmente correctamente definido y devuelva "sap.ui.core.IAsyncContentCreation" según lo previsto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Intenté verificar el contenido de la library en DevTools, pero obtengo una excepción ReferenceError .

Lo más probable es que haya encontrado la limitación del depurador de V8, donde las variables de cierre no utilizadas (aquí: library ) no son evaluadas por el V8 durante la sesión del depurador y, por lo tanto, no se puede acceder a ellas desde la consola de devtool. Consulte ¿Por qué el depurador de Chrome cree que la variable local cerrada no está definida? y también los números V8 # 3491 y # 2710 .

La limitación anterior se aplica solo al depurador de V8. Cuando el código se ejecuta en tiempo de ejecución, library.IAsyncContentCreation se resolverá en la cadena "sap.ui.core.IAsyncContentCreation" como se esperaba, por lo que no obtendrá ReferenceError .

Explorando las muestras de las aplicaciones de SAP, [...] el nombre de la interfaz se reemplaza con el código.

No está claro por qué el autor de la muestra decidió requerir la biblioteca principal en primer lugar. Esas interfaces en UI5 Objects esperan literales de cadena. Y las interfaces UI5 son interfaces de marcadores simples (también conocidas como interfaces de etiquetado). No especifican ningún comportamiento en el código. Agregar el nombre de la interfaz (literal de cadena) simplemente indica cómo se supone que debe comportarse la clase que implementa la interfaz. Por lo tanto, agregar el literal de cadena es suficiente.

 interfaces: [ "sap.ui.core.IAsyncContentCreation" ],
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda