Closed ryantupo closed 2 years ago
If you care to share your code I may be better able to help.
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;
});
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
print x after this only gives me the list of nouns not my map im trying to return or it returns a promise
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
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.
doesnt work? could you add that to the docs please