Здесь у меня есть обещание, которое просто выполнено.
let promise = new Promise((resolve,reject)=>{
resolve("resolved");
});
Путаница для меня начинается, когда я использую Promise для возвращаемого значения в цепочке .then
, например:
promise.then(resolve=>{
console.log(resolve);
return Promise.resolve(2);
}).then(resolve=>{
console.log(resolve);
});
promise.then(resolve=>{
console.log(resolve)
return 3;
}).then(resolve=>{
console.log(resolve);
});
Вывод этих цепочек: 1 1 3 2 Что я ожидал увидеть: 1 1 2 3
Но если я поверну return Promise.resolve(2);
на return 2
, как здесь:
promise.then(resolve=>{
console.log(resolve);
return 2;
}).then(resolve=>{
console.log(resolve);
});
promise.then(resolve=>{
console.log(resolve)
return 3;
}).then(resolve=>{
console.log(resolve);
});
Я получу вывод, который мне показался получил бы в первую очередь (1 1 2 3).
Так может ли кто-нибудь здесь объяснить, почему выходные данные меняются в зависимости от использования и не использования Promise.resolve()
?
Кстати, я задаю этот вопрос только по чистой причине ACADEMI C!