这篇文章主要讲解了“JavaScript异步编程怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript异步编程怎么使用”吧!
在异步编程中,一条语句的执行不能依赖上一条语句执行完毕的结果,因为无法预测一条语句什么时候执行完毕,它与代码顺序无关,语句是并发执行的。
例如以下代码:
$.get($C.apiPath+'ucenter/padCharge/findMember',{id:memberId},function(data){ if(data.error){ layer.close(memberLayer); padInOut(padId,memberId); allPads(); } });
这三句在语境中的作用是,在完成某个ajax访问并成功获得数据之后,关闭某个弹层(1),执行padInOut函数(2),执行allPads函数(3);(1)的顺序无所谓,但是我希望(3)在(2)之后执行,然而这几句代码无法达到我希望的结果,因为三个函数是同时执行的,allPads无法等待padInOut执行完毕之后再执行,所以结果当然会出错。
我最后采取的解决方法是回调函数:在padInOut函数定义加入回调函数,如下:
function padInOut(padId,memberId,callback){ $F.POSTLoading($C.apiPath + 'ucenter/padCharge/padInOut',{id:padId,memberId:memberId},function(data){ if(callback)callback() }); };
当方法执行完毕并且回调函数存在时,执行回调函数。此时函数执行时通过传参即可达到目的:
padInOut(padId,memberId,allPads)
回调函数是js异步编程经常会用到的方法。然而使用回调函数存在不好的地方,即会造成回调地狱。
感谢各位的阅读,以上就是“JavaScript异步编程怎么使用”的内容了,经过本文的学习后,相信大家对JavaScript异步编程怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。