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.

Reply via email to