脚本宝典收集整理的这篇文章主要介绍了面试题:没有es6老项目,如何用jq解决异步的问题?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_304_1@我们都知道es6提供了promise异步写法,但是大部分的公司都是jq写的,那我们如何用Jq来写和PRomise异步一样的写法呢?这个知道的人不多下面我们就来写写把
注意:
1 JQ 1.5以上
2 关键api: $.Deferred()
<!DOCTYPE htML>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p>deferred test</p>
<script src="https://cdn.bootcss.COM/jquery/3.2.0/jquery.min.js"></script>
<script type="text/javascript">
// var wait = function () {
// var task = function () {
// console.log('执行完成')
// }
// setTimeout(task, 2000)
// }
// wait()
// 已经封装好的(A 员工)
function waitHandle() {
// 定义
var dtd = $.Deferred()
var wait = function (dtd) {
var task = function () {
console.log('执行完成')
// 成功
dtd.resolve()
// 失败
// dtd.reject()
}
setTimeout(task, 1000)
// wait 返回
return dtd.promise()
}
// 最终返回
return wait(dtd)
}
// 使用(B 员工)
var w = waitHandle() // promise 对象
$.when(w).then(function () {
console.log('ok 1')
}, function () {
console.log('err 1')
})
</script>
</body>
</html>
以上是脚本宝典为你收集整理的面试题:没有es6老项目,如何用jq解决异步的问题?全部内容,希望文章能够帮你解决面试题:没有es6老项目,如何用jq解决异步的问题?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。