天气君
天气君

Reputation: 97

Why the promise works in the same time?

new Promise((resolve, reject) => {

  setTimeout(function() {
    console.log(1)
    resolve()
  }, 200)
  
}).then(new Promise((resolve, reject) => {

  setTimeout(function() {
    console.log(2)
    resolve()
  }, 0)
  
}))

Why this output is 2 1,not 1 2? The promise should do things in order?Why it happens

Upvotes: 1

Views: 50

Answers (1)

random
random

Reputation: 7891

then's first parameter is a callback function. Reference - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then.

new Promise((resolve, reject) => {
    setTimeout(function () {
        console.log(1)
        resolve()
    }, 200)
}).then(() => {
    return new Promise((resolve, reject) => {
      setTimeout(function () {
         console.log(2);
         resolve();
    }, 0)});
});

Upvotes: 3

Related Questions