moos / wordpos

Part-of-speech utilities for node.js based on the WordNet database.
478 stars 41 forks source link

assigning the results to variable ? #48

Closed ryantupo closed 2 years ago

ryantupo commented 2 years ago

doesnt work? could you add that to the docs please

moos commented 2 years ago

If you care to share your code I may be better able to help.

ryantupo commented 2 years ago
let x = wordpos.getNouns(body_inner_text.toLowerCase(), function (result) {
    // console.log(result);
    most_common_nouns = new Map();

    result.forEach(noun => {
        if (!isNumeric(noun) && noun.length > 2) {

            let timesOccured = (countOccurences(body_inner_text, noun))
            if (timesOccured > 2) {
                most_common_nouns.set(noun, {
                    timesNounOccured: timesOccured
                });

            }

        }
    });

    console.log(most_common_nouns);
    return most_common_nouns;
});
ryantupo commented 2 years ago

so body_inner_text is a large string and it adds to the map if the noun is repeated more than twice insaide this {}'s it prints the map fine but trying to get that map out of this function as the whole map is troublesome and i dunno how

ryantupo commented 2 years ago

print x after this only gives me the list of nouns not my map im trying to return or it returns a promise

ryantupo commented 2 years ago

basically how do i assign the list of nouns to a varible, if you can show me an example of how to do that , that would be great thanks

moos commented 2 years ago

getX() functions return a Promise - which means you can't access the result outside (unless you use async/await). Here are a couple of ways you can do it: Traditional callback way:

let results;
wordpos.getNouns(text, function (r) {
  results = r;
  // process results here...
});
// but you can't use results here because the callback hasn't been called yet

Promise way 1:

wordpos.getNouns(text).then(result => {
  // process results here...
});

Promise way 2:

// define an async outer function 
(async function() {
  let results = await wordpos.getNouns(text);
  // process results here...
})();

Read more about async/await here.