Read the statement by Michael Teeuw here.
Synchronous requests [solved]
-
I am just working on some changes in my Wunderlist module and have a problem caused by not knowing JavaScript enough…
One instance of my module can display multiple Wunderlist lists. In order for that to work I have to do one requests for every list to the Wunderlist API.
request({url: "https://a.wunderlist.com/api/v1/tasks?list_id=" + id, method: "GET", headers: {"X-Access-Token": this.config.accessToken,"X-Client-ID": this.config.clientID}}, function(error, response, body) { if (!error && response.statusCode == 200) { .... callback(tasks); } });
My problem is I can’t think of a way to combine the todos from all those requests into a single array and then after all todos are received send them to the interface.
-
Take a look at how I did this with the newsfeed.
There is a
Fetcher
object that gets instantiated for every newsfeed. As soon as this feed receives new data it stores it in an instance variable and calls a function of the node_helper (see line 52 of the node helper).That function then retrieves the the values of all the Fetchers’ instance variables and combines the data. It then sends the socket notification with the combined data.
-
I won’t pretend I completely understand what you did there :sweat_smile:
Is it okay if I copy that code, I managed to modify it in a way that seems to work :) -
@paviro Yeah, but try to understand what I did. Thats the best way to learn. Let me know what you don’t understand. I’ll explain.
-
I do not quite understand how the
itemsReceivedCallback
works :confused: -
Does work great now! The only problem is sometimes a list is empty on a refresh even tough it should not be :/
{ inbox: [], 'ViRO Entertainment': [ 'Todo1', 'Todo2', 'Todo3' ] }
-
I’m on my phone now, so not really able to explain the callbacks. Will do that later.
Regarding the empty lists: try debugging by putting some log statements on places where You receive and send data.
-
It is not the socket connection. The fetcher sometimes returns an empty list :/
-
@paviro try debugging the Fetchet on the same way. ;)
-
I am on it but I can’t find the problem… :confounded:
WhenbroadcastItems
is fired and thereforefetcher.onReceive
triggered the lists are populated. But oncebroadcastTodos()
collects the tasks by looping over thefetchers
some lists appear to be empty. Any chance you could have a look?