【发布时间】:2018-11-26 23:39:53
【问题描述】:
我有一个需要通过批处理删除的数据库。如下代码所示,根据数据库大小,可以有任意数量的step(当前批量迭代)。我想将函数redirect_to_homepage() 放在下面的代码中,以便在最后一个批处理之后,它重定向到一个新页面。目前,只要response.success 为真,它就会重定向,而不是我希望它等待delete_all_data() 的所有迭代完成然后重定向。我怎样才能做到这一点?
jQuery.ajax({
url: ajaxurl,
type: 'POST',
data: {
'action': 'deactivation_form_submit',
'form-data': form_data,
}
}).done( function( response ) {
if ( response.success ) {
if ( response.data.delete_data ) {
delete_all_data( 1, form_data );
}
redirect_to_homepage();
}
});
// This is a recursive AJAX function.
function delete_all_data( step, form_data ) {
jQuery.ajax({
url: ajaxurl,
type: 'POST',
data: {
'form': form_data,
'action': 'give_do_ajax_export',
'step': step,
},
dataType: 'json',
}).done( function( response ) {
if ( true !== response.success && ! response.error ) {
delete_all_data( parseInt( response.step ), form_data );
}
});
}
【问题讨论】:
-
确定
all的含义,使delete_all_data返回true 或false,无论它是否还有要删除的内容,并且只有在没有其他内容要删除的情况下才重定向。类似的东西。
标签: javascript jquery ajax promise