Hi Alex!
If you are writing software which isn't way too complex and you don't want
to get crazy with all the secrets of Nodejs and JS then sure let's never
think that nodejs is multithread, it will only confuse people and send them
away to learn Python or whatever other "fast learning curve" programming
language.
One day you'll need to do 5 big queries, each of them will need 1 minute.
Unexpectedly It will take 2 minutes! Then you'll want to know the truth:
Nodejs is multithreading and has a pool of 4 threads.
Setting process.env.UV_THREADPOOL_SIZE =5 will do the trick.
I'm not sure about it but usually there should be 6 threads: 1 for the main
loop event, 1 for the libuv(mostly handling the async I/O) and 4 in the
pool.
I don't know if new people learning JS should learn callbacks then promises
and in the end async-await. They will sure know a lot more going through
the callback hell but most of the times they just want to get things done
ASAP.
Calogero
On Monday, 3 July 2017 22:24:19 UTC+2, Alex Wells wrote:
>
> "meaning it's in another thread"
>
>
> I don't mean to pull you up on your helpful reply unnecessarily, but it's
> still in the same thread. Your NodeJS process is always in a single thread,
> and you should never think of it otherwise.
>
> A good concept (I think) is thinking of the callback as being placed onto
> the execution stack of the current thread, but in the 'near future'. When
> OP returns 'resultData', the 'near future' has not happened yet.
>
> Agree on using 'let' and 'const' for es6 concepts, definitely good if you
> can use it in your project, but ditto 'Promises' which would help you here
> I think - you'll still need to understand how anonymous function passing
> works though! Callbacks are key.
>
> Thanks,
> Alex
>
> On Sunday, 2 July 2017 03:53:06 UTC+1, Calogero Mandracchia wrote:
>>
>> Hi Kumar,
>> the operation "resultData = rows" is inside a callback, meaning it's in
>> another thread.
>> When "return resultData;" is read, it's still undefined, because it's
>> being processed in the callback.
>> The simple answer woulb be to just put the "return" in the callback, the
>> hard answer would be to understand how the main loop of nodejs works and
>> how to use promises for handling callback.
>>
>> ps: use const or let instead of var :)
>>
>> Calogero
>>
>> On Sunday, 2 July 2017 02:06:46 UTC+2, Sushil Kumar Kishan wrote:
>>>
>>> Hi ,
>>>
>>> I am trying to display database value in a variable but does not return
>>> any value.
>>>
>>> below is the code.
>>>
>>> var mssql = require('mssql');
>>> var resultData='';
>>> function getStyleData(){
>>> var msSqlSettings = {
>>> server : 'localhost',
>>> port : '51663',
>>> user : 'sa',
>>> password : 'admin1234',
>>> database : 'ComWriter.Temp002'
>>> };
>>> mssql.close();
>>> mssql.connect(msSqlSettings, function (err ) {
>>> if (err) {
>>> throw (err);
>>> }
>>> var getQuery = "SELECT [Title] FROM [dbo].[Templates] " ;
>>> var request = new mssql.Request();
>>> request.query(getQuery, function (err, rows) {
>>> //console.log(rows);
>>> mssql.close();
>>> resultData = rows;
>>> });
>>> });
>>> return resultData;
>>> }
>>> var getFunction = getStyleData()
>>> console.log(getFunction);
>>>
>>
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/a396fc84-f903-4eea-a545-1134b5f0f514%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.