Problème fetch et addEventListener, impossible faire console.log

Fermé
Lukas1980 - 25 oct. 2020 à 19:29
 Lukas1980 - 26 oct. 2020 à 10:03
Bonjour,



Je n'arrive pas à comprendre pourquoi ce code ne marche pas ?

function fetchAjax(url, type = 'json'')
{
    return fetch(url).then(function(response){
        return response[type](); // process it inside the `then`
    });
}


fetchAjax('monpage.php', 'text').then(response => {
    console.log('UN');
    document.addEventListener('load', function (event) {
        console.log('Deux');
    });
});


Normalement je dois avoir UN et DEUX, mais je reçois chaque fois uniquement le 1er résultat.

Pour info, le fetchAjax fonction très bien, quand je fais addEventListEner avec "load", je n'arrive plus à faire console.log

Merci pour votre future aide.

3 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 25 oct. 2020 à 23:12
Normalement, on n'utilise pas de 'load' sur un document
A la place, on utilisera
document.addEventListener('DOMContentLoaded',

Ou sinon
  window.addEventListener("load",


1
Merci pour votre réponse,
Malheureusement, le bug est toujours présent, en fait ça affiche le résultat de 2éme console, uniquement si je vide la cache. Sinon ça ne marche pas.
J'ai déjà essayé de désactiver la cache via header, via 2éme paramètre (fetch), ça ne marche pas.


J'ai choisi une autre solution pour ne pas utiliser load dans une fetch.


Comme je l'utilise 2 cas (click et load) je fais une teste, si c'est click, j'utilise un addEventListEner sinon je fais le traitement directement sans addEventListEner.


Mais c'été très intéressent à savoir pourquoi ça ne marche pas le code, même si j'utilise xmlhttprequest (des fois ça marche des fois ça ne marche pas). J'ai déjà essayé sur tous les navigateurs.


Dans tous les cas, merci pour votre aide.


Cordialement,
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 oct. 2020 à 19:32
Bonjour,

Pour commencer, tu as une quote en trop
function fetchAjax(url, type = 'json'')

0
Bonjour, merci pour la réponse, en fait, c'est une faut de frappe sur comment ça marche, j'ai simplifié le code pour mettre en ligne :)
0
Pour info, j'utilise addEventListener parce que j'ai deux cas.
1. avec click
2. avec load
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 oct. 2020 à 22:37
Et donc, quel est ton code complet ?
Qu'obtiens tu ?
Que vois tu dans la console ?
N'as tu pas des messages d'erreur dans la console ?
Ta fonction parle d'ajax... tu as activé le debogage ajax dans la console ?
0
Lukas1980 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
25 oct. 2020 à 23:09
Merci pour votre réponse rapide,
C'est un code pour le test, ça doit afficher UN et DEUX dans la console.


Sinon, c'est une fonction que j'utilise dans mon projet qui est fonctionnel.


Je voudrais juste savoir, pourquoi, c'est impossible de l'utiliser console.log dans une addEventListEner('load',...) qui se trouve à son tour dans une fetch.

Merci

Cordialement,
0