Hi Tweakers,
Sinds een tijdje probeer ik weer eens wat nieuwe programmeer talen op te pakken en omdat ik nu ook een Homey heb wil ik weer eens aan de slag met NodeJS. In het verleden simpele scripts/tooltje mee gemaakt en dat ging prima. Maar nu zit ik in de knoop met die callback, dat is vrij nieuw voor me.
Ik wil als test een dood simpele RSS reader maken, heb onderstaande code (ja, het is niet netjes nu) :
In basis werkt het prima, hij haalt de feed op, lepelt de titels er uit en die kan ik ook prima laten printen op de console in de forEach loop. Maar, ik wil dat hij alles in 1 array stopt en me die array terug geeft. Dus ik roep de getData function aan, die alles een array in pusht. Nu is alleen de grote vraag, hoe krijg ik de array terug BUITEN de anonymus function die als callback op de forEach zit? Je ziet al dat ik daar een dataArray = doe om te kijken of ik het result er zo uit kan vissen, maar als ik vervolgens buiten die forEach een console.log wil doen van dataArray is hij leeg..
Het zal vast dood simpel zijn, maar na een dag Googlen ben ik nog niet verder. Iemand hier de gouden tip?
Sinds een tijdje probeer ik weer eens wat nieuwe programmeer talen op te pakken en omdat ik nu ook een Homey heb wil ik weer eens aan de slag met NodeJS. In het verleden simpele scripts/tooltje mee gemaakt en dat ging prima. Maar nu zit ik in de knoop met die callback, dat is vrij nieuw voor me.
Ik wil als test een dood simpele RSS reader maken, heb onderstaande code (ja, het is niet netjes nu) :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| "use strict"; var parser = require('rss-parser'); function init() { var testarray = [] function getData(value){ //console.log('Getting data for : '+value['title']); testarray.push(value['title']); return(testarray); } function execute(someFunction, value) { return(someFunction(value)); } function showLatest(array){ console.log("Latest one:"+array[0]); } //console.log (execute(getData, "Hello")); var parser = require('rss-parser'); parser.parseURL('https://tweakers.net/feeds/nieuws.xml', function(err, parsed) { console.log(parsed.feed.title); parsed.feed.entries.forEach(function(value){ dataArray = execute(getData, value); }) showLatest(dataArray); }) } |
In basis werkt het prima, hij haalt de feed op, lepelt de titels er uit en die kan ik ook prima laten printen op de console in de forEach loop. Maar, ik wil dat hij alles in 1 array stopt en me die array terug geeft. Dus ik roep de getData function aan, die alles een array in pusht. Nu is alleen de grote vraag, hoe krijg ik de array terug BUITEN de anonymus function die als callback op de forEach zit? Je ziet al dat ik daar een dataArray = doe om te kijken of ik het result er zo uit kan vissen, maar als ik vervolgens buiten die forEach een console.log wil doen van dataArray is hij leeg..
Het zal vast dood simpel zijn, maar na een dag Googlen ben ik nog niet verder. Iemand hier de gouden tip?
Owner of DBIT Consultancy | DJ BassBrewer