@kuronokey

Несколько промисов в коде?

resolve = () => {console.log('resolve');}
reject = () => {console.log('reject')}


var promise2 =  new Promise ( function (resolve,reject) {	
	
	console.log ('promise2');
		var zn = prompt ('digit');
	
		if (zn > 9) {
		resolve() 
		}
		else {
		reject();
		}
	
	}
	);
	

	var myInnerServerTalk =  new Promise ( function (resolve,reject) {
	
	console.log (' myInnerServerTalk');
	var zn = prompt ('digit');
	
	if (zn > 9) {
	resolve() 
	}
	else {
	reject();
	}
	
	}
	);
	
myInnerServerTalk.then(resolve,reject)


Подскажите почему конструктор промиса создаёт myInnerServerTalk таким образом, что вызывается код и из myInnerServerTalk и promise2 .

Я вызываю промис myInnerServerTalk , но при этом почему-то вызывается код из promise2
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Потому что правильно это делается так:
const resolve = () => console.log('resolve');
const reject = () => console.log('reject');


const promise2 = () => new Promise((resolve, reject) => {	

  console.log ('promise2');
  const zn = prompt ('digit');

  if (zn > 9) {
    resolve() 
  }
  else {
    reject();
  }

});
  

const myInnerServerTalk = () => new Promise((resolve, reject) => {

  console.log (' myInnerServerTalk');
  const zn = prompt ('digit');

  if (zn > 9) {
    resolve() 
  }
  else {
    reject();
  }

});
  
myInnerServerTalk().then(resolve).catch(reject);

Вы же, в своем коде не оборачиваете промисы в функцию, а функции-экзекуторы промисов выполняются сразу же при создании промиса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы