0

I have a function: I need to know from Wiktionary API if a user´s input german noun / adjective exists and its grammatical gender.

But the function always returns undefined although:

  • I asked for a return
  • the function is async
  • I used .onload on the function call waiting for the response

Could you please explain me what I am doing wrong? It´s the first time I work with APIs and I am pretty confused.
Thanks

check(userInput).onload;


async function check(word) {    
    $.getJSON('http://de.wiktionary.org/w/api.php?action=parse&format=json&prop=text|revid|displaytitle&callback=?&page=' + word,
    function (json) {
        try {
            let variable = json.parse.text['*'];
            let nounM = variable.search('id=\"Substantiv,_m\">');
            let nounF = variable.search('id=\"Substantiv,_f\">');
            let nounN = variable.search('id=\"Substantiv,_n\">');
            let adjective  = variable.search("href=\"#Adjektiv");
            let gender = Math.max(nounM,nounF,nounN,adjective);
            console.log(gender);
            return gender;
        } catch (e) {
            console.log(e);
            return undefined;
        }
    });
};
VLAZ
  • 26,331
  • 9
  • 49
  • 67
Antoine
  • 1
  • 1
  • 1
    1. Why is that function async of you dont await? 2. You dont return anything so of course theres no onload property of undefined – Jaromanda X Sep 15 '22 at 13:12

0 Answers0