jQuery的:
var dfd = $.Deferred();
$(document).on('click', '#Signup', function() {
email_check('Signup');
mobile_check('Signup');
dfd.done(function(){
alert("Hello World!")
})
})
function email_check(Signup){
dfd.resolve();
}
function mobile_check(Signup){
dfd.resolve();
}
大家好,我想在延迟对象解析函数email_check和mobile_check时解决。然后执行alert语句。我怎么能这样帮助我。
答案 0 :(得分:2)
使用$.when()
等待承诺(延期)得到解决
提供一种基于零个或多个Thenable对象执行回调函数的方法,通常是表示异步事件的Deferred对象。
$(document).on('click', '#Signup', function() {
console.log("Signup...");
$.when(email_check('Signup'), mobile_check('Signup'))
.done(function(){
console.log("All done!")
});
});
function email_check(Signup){
var d = $.Deferred();
setTimeout(function() {
console.log("email_check resolved");
d.resolve();
}, 1000);
return d;
}
function mobile_check(Signup){
var d = $.Deferred();
setTimeout(function() {
console.log("mobile_check resolved");
d.resolve();
}, 2000);
return d;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="Signup">Signup</button>