我得到了前面的答案,我的问题,我使用jQuery命令$.Deffered()
学习了。这是非常有用和激动人心的时刻,但在继续进行的过程中,我发现我的一个功能在一切之前被解雇了。这是我的代码。
function clearMsg() {
var defer = $.Deferred();
console.log('clearMsg() called..');
$('#status > span').hide(400);
setTimeout(function() {
defer.resolve();
}, 400);
return defer;
};
function addMsg( type, sign, text ) {
var defer = $.Deferred();
console.log('addMsg() called..');
$('#status').append('<span class="text-'+type+'"><span class="glyphicon glyphicon-'+sign+'"></span> '+text+'</span> ').children(':last-child').show(400);
setTimeout(function() {
defer.resolve();
}, 400);
return defer;
};
function addMsg_total() {
var defer = $.Deferred();
console.log('addMsg_total() called..');
addMsg( 'success', 'ok', 'Total '+opt.total.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")+' nodes were found.' );
setTimeout(function() {
defer.resolve();
}, 400);
return defer;
};
function addMsg_pagenation() {
var defer = $.Deferred();
console.log('addMsg_pagenation() called..');
addMsg( 'info', 'ok', opt.pageNow+' of '+opt.pageEnd+' pages.' );
setTimeout(function() {
defer.resolve();
}, 400);
return defer;
};
..以下是我的工作。
clearMsg()
.then(addMsg_total)
.then(addMsg_pagenation)
.then(addMsg('warning', 'warning-sign', 'Requested node was out of range.'));
..我希望最后一个addMsg()
函数在所有序列结束后开始,但addMsg()
刚开始。
为什么?理解这一点我需要知道什么?
答案 0 :(得分:2)
因为您通过在末尾添加()
来调用它
clearMsg()
.then(addMsg_total)
.then(addMsg_pagenation)
.then(function(){
return addMsg('warning', 'warning-sign', 'Requested node was out of range.')
});