>
> the operation "resultData = rows" is inside a callback, meaning it's in 
> another thread. 
>

a callback is not inside another thread. You seem to talk about a low-level 
NodeJS management operation where the environment itself can use other 
threads, but I don't see what that has to do with callbacks. Callbacks 
operate in the same thread, just lower down the call stack.
 
On Tuesday, 4 July 2017 20:40:28 UTC+1, Calogero Mandracchia wrote:
>
> 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/be521d65-aa98-4df2-b41a-e0346f3c2416%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to