Why node.js asynchronous is not timeout?

First(solved)

I am try promise of node.js.

function testpromise(data, ms) {
    return new Promise((resolve, reject) => {
        if (data=="hello") {
            setTimeout(resolve(data), ms);
            return;
        }
        reject("emm");
    })
}

testpromise("123", 3000)
    .then((res) => { console.log(res) })
    .catch((err) => { console.log(err) });

console.log("123");

If I use testpromise(), And provide a "123"(reject) parameter.

This program was error.

Else, If I provide a "hello" parameter(resolve), Then it is correct.

Why is this happening?

Last

Provide a "hello" parameter to this function:

testpromise("hello", 3000)
    .then((res) => { console.log(res) })
    .catch((err) => { console.lof(err) });

console.log("123");

Then, Node return is correct.

But

setTimeout() Only results, no delay…

Intuitively speaking:

enter image description here

"123" before "hello", This is correct.

but no delay, no delay, no delay!!!

Why?

Help me, Please!

Thank you very much.

86 thoughts on “Why node.js asynchronous is not timeout?”

Leave a Comment