Bug dans domUtils.ajax?

Bonjour,
Je ne sais pas si j’ai mal compris le code de domUtils.ajax (ligne 531 dans core/dom/dom.utils.js) ou s’il y a un bug.
Je tente d’utiliser cette fonction pour un appel ajax en mode synchrone.

  • Ligne 539:
    On initialise _params.onError avec _param.error si c’est une fonction ou null dans le cas contraire.

  • Ligne 565:
    Si le code de la réponse est autre que 200, on appel domUtils.handleAjaxError(response, response.status, response.statusText)

    • Mais la variable response ne semble pas avoir été déclarée !!! ?
  • Ligne 566:
    si _params.onError est défini (voir ligne 539) on appel la fonction avec un seul argument (error).

    • Mais la variable error ne semble pas avoir été déclarée !!! ?
  • Ligne 537:
    Dans tous les cas, peu importe si _params.onError est une fonction ou null, on appel _params.onError avec trois arguments (deux string vides et error) !!! ?

Bonjour,
Effectivement ya des trucs bizarre. J’ai crée une issue [BUG] Some error on domutils · Issue #2731 · jeedom/core (github.com).

Juste pour ca : Dans tous les cas, peu importe si _params.onError est une fonction ou null, on appel _params.onError avec trois arguments (deux string vides et error ) !!! ? je pense les 2 chaines vide c’est pour la retrocompatibilité.

J’ai fait un fix, peux tu me dire si tout est bon ?

Merci @Loic ,
Toujours aussi réactif.

Je le serai un peu moins car je ne peux pas tester avant ce soir.

J’ai hésité à faire un PR moi-même mais je crains de ne pas connaître suffisamment le core pour envisager tous les effets de bord.

J’ai juste jeté un coup d’œil sur la correction sur GITHUB.

Si je comprend bien, il n’est plus nécessaire de définir une fonction error dans le plugin si l’on ne désire rien faire d’autre que d’afficher un message sur la console Jeedom. Je trouve cette amélioration super.

Normalement oui a tester quand meme mais c’est le but

1 « J'aime »

Je confirme que ça fonctionne comme attendu.

Il serait peut-être utile de laisser la possibilité de définir un param (noErrorHandling par exemple) qui permettrait à un plugin de déclarer qu’il ne faut pas afficher le message en cas d’erreur. C’est juste une suggestion de flexibilité, perso, je n’en ai pas besoin.

Oui pourquoi pas mais je pense tu peux déjà le faire en transmettant une fonction error vide

Je ne pense pas, domUtils.handleAjaxError(request, request.status, request.responseText) est appelée quelque soit la valeur de _params.onError.

Mais peu importe, c’était juste une solution et tu as certainement d’autres points plus importants et pressants à traiter.
MERCI !

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.