Estoy tratando de bloquear contenido en una vista web nativa de reacción usando la función onShouldStartLoadWithRequest. Uso funciones asíncronas para el motor que decide si bloquear o no una solicitud específica. Como estoy usando una función asíncrona para cargar el motor y necesito devolver un booleano a la función onShouldStartLoadWithRequest, terminé usando el método .then para pasar la variable del motor a mi función que la usa. Sin embargo, cuando pruebo esto, no se bloquea ninguna solicitud. Intenté registrar el código ejecutado en el método .then en la consola para ver qué estaba pasando y terminé obteniendo un valor booleano. Sin embargo, cuando probé otra función asíncrona aleatoria que siempre devuelve falso (siempre bloqueará el contenido), tampoco funcionó (con una función normal sí funcionó), así que siento que no estoy manejando las funciones asíncronas correctamente de alguna manera . Aquí está mi código aplicable. Al final, estoy tratando de devolver un booleano, ¿no es eso lo que está sucediendo en la función onShouldStartLoadWithRequest?
//This is my loading function - it is located outside of the onShouldStartLoadWithRequest function async function loadEngine() { let engine = await FiltersEngine.fromPrebuiltAdsAndTracking(fetch); return engine } //This is my onShouldStartLoadWithRequest function onShouldStartLoadWithRequest={(WebViewRequest) => { function useEngine(requestURLS, engine) { const { match } = engine.match(Request.fromRawDetails({ url: requestURLS, })) let final_output; final_output = !match return final_output } return loadEngine().then((engine) => (useEngine(WebViewRequest.url, engine))) }}