• # Tu tiens pas tes promesses

    Posté par (site web personnel) . En réponse au journal recherche-totoz en JavaScript. Évalué à -3. Dernière modification le 30 novembre 2018 à 14:01.

    Ce n'est pas (削除) asynchrone (削除ここまで) (désolé, en vrai ça l'est) ça n'est pas fluide à la lecture, tu mets des await (削除) (et tu force le blocage du code en attente de la réponse) (削除ここまで) (en vrai j'imagine que la VM js va aller lancer d'autres en attendant).

    La bonne methode serait d'utiliser l'API des promesses, du style:

     const fetch = require('node-fetch')
     const xmljs = require('xml-js')
     if (process.argv[2]) {
     fetch(
     'https://totoz.eu/search.xml?terms=' + 
     encodeURIComponent(process.argv[2])
     )
     .then(ret => res.text())
     .then(ret => {
     obj = xmljs.xml2js(xml,{compact: true})
     const totozList = obj.totozes.totoz.length ? obj.totozes.totoz : [obj.totozes.totoz]
     const totozNamesStr = totozList.map(t => t.name._text).join('\n')
     console.log(totozNamesStr)
     })
     .catch(err => console.error(err.message))
     ;
     }

    (non testé)