Así que estoy confundido acerca de la implementación estándar de la industria. Siento que esto es una forma de hackear la forma en que lo estoy haciendo ahora
Quiero mostrar un mensaje de error cada vez que haya un error real y mostrar un mensaje de error cada vez que el servidor devuelva un estado fallido
El problema aquí es que cuando hay un error real en la asignación de usuario (), devuelve el error y esto no activa la captura de la primera función, por lo que es manejado por la instrucción else y muestra un mensaje de falla mientras es un error real . Intenté usar throw new Error ("error) en la captura de AssignUser() pero el mismo problema.
La segunda preocupación que tengo es con respecto a (200 >= status <300) ¿hay una forma más sencilla de verificar una operación exitosa que no sea verificar el estado que puede ser 200, 204 ...?
try { let status = assignUser(user); if (status >= 200 && status < 300) { notify.show("message success"); } else { notify.show("message failure"); } } catch (e) { notify.show("message error"); } export async function assignUser(user) { try {...... return resp.status; } catch (e) { return e; } }Supongo que la función de asignación de usuario está haciendo una llamada de API usando fetch. Entonces, si no está utilizando el método de captura para resolver la promesa, entonces la función de asignación de usuario tiene que ser una función asíncrona.
async function assignUser(user) { try { const jsonRes = await fetch(url); if(!jsonRes.ok) { notify.show("message failure"); } else { notify.show("message success"); const result = await jsonRes.json(); return result; } } catch (e) { notify.show("message error"); } }Aquí no necesita otra función para verificar el estado y todo, y en lugar de verificar con el código de estado, puede usar la propiedad response.ok.
Espero que esto ayude Gracias