我正在尝试在咖啡脚本中使用它:
$(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn 1000, arguments.callee
$(this).promise().done -> console.log 'hey trip'
au naturale JS 中的相同内容
$(this).hide().each(function(index) {
$(this).delay(index * 100).fadeIn(1000, arguments.callee)
});
$(this).promise().done(function() {console.log 'hey trip' });
我想在动画完成后执行控制台日志。但是这里的这个片段从不传递控制台消息(通常),更不用说动画完成时了。
任何人都知道如何正确使用承诺对象?
第二次失败尝试:
promise = new $.Deferred ->
promise.done -> console.log 'hey trip'
promise.resolve( $(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn 3000, arguments.callee
)
第三次失败的变体
dfd = $.Deferred ->
dfd.done(
$(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn(3000, arguments.callee)
).done -> console.log 'hey trip'
第四次失败的变体
$.when(
$(this).hide().each (index) ->
$(this).delay(index * 100).fadeIn(3000, arguments.callee)
).then -> console.log 'hey trip'