Estoy haciendo un POST para verificar si los detalles de inicio de sesión de un usuario son válidos y, de lo contrario, quiero mostrar el mensaje de error que se detecta (variable errorMessage ).
Estoy usando mutaciónObserver() para esperar a que aparezca un nodo en el DOM, donde luego insertaré mi mensaje de error. (Desafortunadamente, tengo que escribir mi código de esta manera, debido a la aplicación que estamos usando en el trabajo).
Mi pregunta es, ¿cómo paso errorMessage desde mi método catch() a la mutaciónObserver()?
Intenté pasar esto a observer.observer() , pero no obtengo el errorMessage console.logged. Solo lo siguiente:
It's in the DOM! MutationObserver {}
Mi código está abajo. ¿Cómo hago esto?
Alternativamente, estaba pensando en almacenar el mensaje de errorMessage como una variable global. Y luego accediendo a eso en MutationObserver().
Pero me preguntaba si realmente puedo pasar otra variable a MutationObserver().
Gracias,
const submitButton = document.querySelector(".login__btn"); // How do I pass errorMessage into MutationObserver() const observer = new MutationObserver(function(mutations, errorMessage) { if (document.contains(document.querySelector(".error-container"))) { console.log("It's in the DOM!", errorMessage); } }); submitButton.addEventListener("click", function() { console.log("clicked..."); let data = { email: "my@emailaddress.com", password: document.getElementById("password").value, rememberMe: false, captcha: "" }; fetch("https://www.PRIVATEAPI.com/holidays/_api/v1.0/account/login", { method: "POST", headers: { "Content-Type": "application/json" }, mode: 'cors', credentials: "include", body: JSON.stringify(data) }) .then(response => { if (!response.ok) { return Promise.reject(response); } return response.json(); }) .then(data => { console.log("Success"); console.log(data); }) .catch(error => { if (typeof error.json === "function") { error.json().then(jsonError => { console.log("Error from API..."); console.log(jsonError.innerErrors[0].message); // How do I pass this variable into the mutationObserver() function? let errorMessage = jsonError.innerErrors[0].message; observer.observe(document, {attributes: false, childList: true, characterData: false, subtree:true}, errorMessage); }) }; }); });