I am trying to understand how to design node.js applications, but it seems there is something I can't grasp about asynchronous programming.
Let's say my application needs to access a database. In a synchronous environment I would implement a data access class with a read() method, returning an associative array.
In node.js, because code is executed asynchronously, this method can't return a value, so, after execution, it will have to "do" something as a side effect. It will then contain some code which does something else than just reading data.
Let's suppose I want to call this method multiple times, each time with a different success callback. Since the callback is included in the method itself, I can't find a clean way to do this without either duplicating the method or specifying all possible callbacks in a long switch statement.
What is the proper way to handle this problem? Am I approaching it the wrong way?
Best Answer
Since you can pass functions as parameters, it is common to pass a "callback" function to these sorts of functions. So, for example, you may have a "read" function that looks like this:
You can then call the read method like this: