对于异步函数来说,回调方式和同步方式有何区别?
service
.queryActivityJoin(data)
.done(function (response) {
// 如果已经参加
if (response.data.is_join == 1) {
$('.prize').css({
"background-image": "url(http://img.gsxservice.com/0cms/d/file/content/2015/01/54b8a83098788.jpg)"
});
}
// 如果还没有参加
else if (response.data.is_join == 0) {
$('#appmain')
.on('click', '.prize', function () {
service.addActivityJoin(data);
window.location.reload();
});
}
});
当然了,回调的方式更直观,因为异步的含义就是调用后不管, 继续执行自己的代码,而异步执行什么时候结束是不知道的。执行好了通知你。
用回调函数很好体现了这一点。
其实不一定
https://cnodejs.org/topic/5425fb61326dfbe724dbd64e
看这个代码,就可以用你熟悉的方式调用异步代码了,无需写回调。
因为JS是单线程的,回调好处在于避免JS阻塞
居于回调就不会阻塞ui了。。js没有线程的概念,你不居于回调,一个for循环几万次做大量计算你流量器就假死了。就和你ajax同步异步一样。