Źródło: Arkusze CKE
Co zostanie wyświetlone po wykonaniu poniższego kodu JavaScript?
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('success');
}, 1000);
});
promise
.then(res => {
console.log(res);
return 'first then';
})
.then(res => {
console.log(res);
});
Warianty odpowiedzi
-
A
first then
-
B
success
-
C
success, first then
-
D
first then, success
Wyjaśnienie
Mamy tu do czynienia z obietnicą (Promise) oraz łańcuchowaniem metod then.
Po 1 sekundzie obietnica przechodzi w stan spełniony i przekazuje wartość success. Pierwszy blok then odbiera tę wartość, wypisuje ją w konsoli, a następnie zwraca nowy napis first then.
Wartość zwrócona z pierwszego then jest automatycznie przekazywana do kolejnego bloku then w łańcuchu.
Drugi blok wypisuje odebraną wartość w konsoli. Dlatego dostajemy w kolejności: success oraz first then.