npm docs execute
Execute, executes multiple functions in parallel and aggregates the results
in a hash
that has the same keys as your functions did.
Don't use async, it's a kitchensink of junk patterns.
```js
var execute = require("execute")
function handler(req, res) {
execute({
one: function (cb) { queryOne("query", cb) }
, two: function (cb) { queryTwo("query" cb) }
}, function (err, results) {
if (err) {
return res.error(err)
}
var one = results.one
, two = results.two
res.render("tmpl", { one: one, two: two })
})
}
```
On Wed, Dec 26, 2012 at 2:12 AM, klrumpf <[email protected]> wrote:
> an example in coffeescript, don't know if it is the most elegant
> solution.
>
> You nest the two (three...) functions (q1...q2...qx) with your mysql
> statements having the
> first call the second (and the second the third...) and at the end you
> call the first (q1).
>
> That way they will get executed in the order determined by you (sync). You
> have a local
> "myRender" inherit the render method and call that in your function. That
> should be all.
>
> Alternatively use a module like async. (I try keep use of modules low to
> avoid extra overhead)
>
> ...
> myRender = @render # make render method available for funcs below
>
> q1 = ->
> MysqlConnection = mysql.createConnection(mysql_options)
> MysqlConnection.connect()
> # is there a matching user (pktnr) with this password (dance)?
> sql = "select count(*) as pkt_count from pkt where pktnr = " +
> MysqlConnection.escape(suchpktnr) + " and dance = " +
> MysqlConnection.escape(suchpwd)
> MysqlConnection.query sql, (err, result) ->
> throw err if err
> MysqlConnection.end
> q2(result[0].pkt_count)
>
> #nested callback, write sessionid to mysql if pktnr+pwd exists in db
> q2 = (pkt_count) ->
> if pkt_count > 0
> pr_pktnr = suchpktnr
> #if correct then write sessionid to the customers record in mysql
> MysqlConnection = mysql.createConnection(mysql_options)
> MysqlConnection.connect()
> sql = "update pkt set sessionid = '" + pr_sid + "' where pktnr = "
> + MysqlConnection.escape(suchpktnr) + " and dance = " +
> MysqlConnection.escape(suchpwd)
> MysqlConnection.query sql, (err, result) ->
> throw err if err
> MysqlConnection.end
> myRender showstock1: {
> pktnr: pr_pktnr
> currentBrowser: currentBrowser
> }
> else
> pr_pktnr = '00000'
> myRender showstock1: {
> pktnr: pr_pktnr
> currentBrowser: currentBrowser
> }
>
> q1()
>
> Hope this is useful, best wishes for the New Year
>
> Karl-L. [email protected]
> Málaga, Spain
>
>
> On 25/12/12 18:14, Joman Sierra wrote:
>
> I have this scenario:
>
> function one
> {
> Makes a query to a big mysql table
>
> }
>
> Function two
> {
> Makes another query to a big myslq table
> }
>
> res.render(showing results of the queries)
>
>
> The problem is that when render is executed the mysql queries are still
> in progress. What's the best way to be sure that the functions has
> finished before sending the render?
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en