У меня есть следующий код, и я не могу понять, почему он не выполняет то, что я хочу. как новичок как в JS, так и в jQuery, я запутался с:
1) Даже если я не пишу код внутри функции ready (), обещания выполняются. Я имею в виду, что обещания выполняются, даже если я им не позвоню.
2) Цель этого кода - напечатать 1, 2, затем сделать паузу в 3 секунды, напечатать 3 и напечатать END. Вместо этого он печатает 1, 2, КОНЕЦ и через три секунды 3.
Я нашел другие примеры и здесь, и на других сайтах и в блогах, но, будучи новичком в JS, я их не понял. Что я делаю не так?
$(document).ready(function (){
$.when(f1)
.then(f2)
.then(f3)
.then(final);
});
function prn(texto) {
$('p').append(texto);
}
var f1 = new Promise(function(resolve, reject) {
resolve(prn('1<br><br>'));
reject('err');
});
var f2 = new Promise(function(resolve, reject) {
resolve(prn('2<br><br>'));
reject('err');
});
var f3 = new Promise(function(resolve, reject) {
setTimeout(function(){
resolve(prn('3<br><br>'));
reject('err');
}, 3000);
});
var final = new Promise(function(resolve, reject) {
resolve(prn('END<br><br>'));
reject('err');
});