Мне нужна помощь в понимании использования отложенных методов, таких как promise()
и done()
.Как работают отложенные заявления, такие как prom() и done()?
1-й) В этом примере для анимации добавляется .promise()
, в котором вызывается done()
.
var stack = new Array();
$(document).ready(function() {
$(".droppable").each(function(){
stack.push(new Droppable($(this)));
});
dropNext();
});
function dropNext(){
var droppable = stack.pop();
if(droppable){
droppable.drop().done(dropNext);
}
}
function Droppable(domElem) {
function drop() {
return domElem.animate(
{
opacity : "1"
}
).promise();
}
this.drop = drop;
}
Какова цель обещания? Как это работает?
2-й) Документы JQuery дают this sort of example с $ .get, но не знают, как это по-другому, чем при использовании анонимной функции обратного вызова, которая уже снабжена $.get()
:
$.get("test.php", {},
function (result) {
alert(result);
}
);
$.get("test.php").done(
function(result) {
alert(result);
}
);
Не анонимная функции уже обратный вызов для получения результатов, которые будут проанализированы при их возврате с сервера?
Вы должны пройти через обещание шаблон, чтобы понять причину https://www.promisejs.org/patterns/ – mz17
Цель 1-го обещания(). Done() состоит в том, чтобы дождаться ** всех ** анимаций/методов, помещенных в очередь для согласованного элемента (ов), который будет успешно завершен (разрешен). '// Получите обещание, разрешенное, когда очереди определенного типа \t // освобождены (fx - это тип по умолчанию). JQuery поместил всю анимацию по умолчанию в очередь fx. –
Согласен с @MayankGupta - вам будет намного лучше Google 'javascript prom' и чтение в какой-то документации' обещания', чтобы вы могли понять, что они собой представляют. Их полезность не ограничивается jQuery 'animate' – Adam