Обещание Javascript, ведет себя странно - PullRequest
0 голосов
/ 04 марта 2019

У меня есть вопрос, и я думаю, что некоторым из вас, ребята, это действительно легко, но я не понимаю, почему Javascript так себя ведет. Код под консолью записывает, 'c, a, b, d' по порядку.Почему это так?

var doSomething = function() {
  return new Promise((res, rej) => {
    res();
  });
}

var doSomethingElse = function(par) {
  console.log(par);
}

doSomething().then(function() {
  return doSomethingElse('a');
});

doSomething().then(function() {
  doSomethingElse('b');
});

doSomething().then(doSomethingElse('c'));
doSomething().then(() => doSomethingElse('d'));

1 Ответ

0 голосов
/ 04 марта 2019

In doSomething().then(doSomethingElse('c')); doSomethingElse выполняется немедленно
Если вы отложите ответ на обещание, вы увидите разницу во времени.

var doSomething = function() {
  return new Promise((res, rej) => {
    setTimeout(()=> res(),3000);
  });
}

var doSomethingElse = function(par) {
  console.log(par);
}

doSomething().then(function() {
  return doSomethingElse('a');
});

doSomething().then(function() {
  doSomethingElse('b');
});

doSomething().then(doSomethingElse('c'));
doSomething().then(() => doSomethingElse('d'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...