面试题:没有es6老项目,如何用jq解决异步的问题?

我们都知道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>

这样就可以使用了,其实promise的前身就是jq的deffered,封装好之后用法差不多,es6把他规范化了而已

原文链接:segmentfault.com

上一篇:Jquery实现checkbox全选、取消全选和反选
下一篇:[翻译]关于Google发布的JS代码规范,你需要了解什么?

相关推荐

  • (立下flag)每日10道前端面试题-15 关于【高级技巧】十问

    (/public/upload/4dc64bf14f4bd714fcd87e98b6a10373) 第一问:安全类型检测——typeof和instanceof 区别以及缺陷,以及解决方案 这两...

    1 个月前
  • (深入)使用jQuery复制数组(复制)

    Communitymorgancodes(https://stackoverflow.com/users/1/community)提出了一个问题:(Deep) copying an array usi...

    2 年前
  • 鼠标移入移出效果 -- jQuery/Vue版

    元素内遮罩层根据鼠标方向显示的效果比较常见,比如百度图片里的图片信息展示。自己动手实现jQuery插件版和Vue组件版效果。 原文链接(http://www.bestvist.com/p/56) ...

    2 年前
  • 高级前端面试题大汇总(只有试题,没有答案)

    面试题来源于网络,看一下高级前端的面试题,可以知道自己和高级前端的差距。有些面试题会重复。 ...

    2 年前
  • 高效的jQuery代码编写技巧总结

    最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升。本文我计划总结一些网上找的和我本人的一些建议,来提升你的jQuery和javascript代码。

    3 年前
  • 领略原生 javascript es6~es10 的魅力

    图片描述(https://img.javascriptcn.com/f3663fe101c5d4062fda74e1ae5e25d6 "图片描述") 作为前端开发工程师,盲目追逐框架似乎有点舍本逐末...

    8 个月前
  • 领略原生 JavaScript ES6~ES10 的魅力

    图片描述(https://img.javascriptcn.com/98bc3ace8fade84c91d94f42b7cc5301 "图片描述") 作为前端开发工程师,盲目追逐框架似乎有点舍本逐末...

    8 个月前
  • 面试题|手写JSON解析器

    这周的 Cassidoo 的每周简讯有这么一个面试题:: 写一个函数,这个函数接收一个正确的 JSON 字符串并将其转化为一个对象(或字典,映射等,这取决于你选择的语言)。

    3 个月前
  • 面试题:nginx有配置过吗?反向代理知道吗?

    这篇文章主要是针对跨域进行配置,如果大佬们会配置的话,就不用看了~简述反向代理和正向代理反向代理: 我们将请求发送到服务器,然后服务器对我们的请求进行转发,我们只需要和代理服务器进行通信就好,偷个图:...

    1 个月前
  • 面试题:Hooks 与 React 生命周期的关系

    React 生命周期很多人都了解,但通常我们所了解的都是 单个组件 的生命周期,但针对 Hooks 组件、多个关联组件(父子组件和兄弟组件) 的生命周期又是怎么样的喃?你有思考和了解过吗,接下来我们将...

    10 个月前

官方社区

扫码加入 JavaScript 社区