10慕课网《进击Node.js基础(一)》初识promise

首先用嘴简单的方式实现一个动画效果

<!doctype>
<html>
<head>
<title>Promise animation</title>
<style type="text/css">
    .ball {
        width: 40px;
        height: 40px;
        border-radius: 20px;
    }

    .ball1 {
        background: red;
    }
    .ball2 {
        background: yellow;
    }
    .ball3 {
        background: green;
    }

</style>
</head>

<body>
    <div class="ball ball1" style="margin-left: 0"></div>
    <div class="ball ball2" style="margin-left: 0"></div>
    <div class="ball ball3" style="margin-left: 0"></div>
    <script type="text/javascript">
        //定义三个球
        var ball1 = document.querySelector(‘.ball1‘)
        var ball2 = document.querySelector(‘.ball2‘)
        var ball3 = document.querySelector(‘.ball3‘)
        //球,移动距离,回调函数
        function animate(ball, distance, cd){
            //每13毫秒改变一次圆球的位置,直到到达指定位置
            setTimeout(function(){
                var marginLeft = parseInt(ball.style.marginLeft,10)
                //球达到预期位置
                if(marginLeft === distance){
                    cd && cd()
                }else{
                    //球在左侧
                    if(marginLeft < distance){
                        marginLeft++
                    }else{
                        //球在右侧
                        marginLeft--
                    }
                    //调整球的位置
                    ball.style.marginLeft = marginLeft
                    animate(ball, distance, cd)
                }
            },13)
        }
        //控制动画
        animate(ball1, 100,function(){
            animate(ball2, 200, function(){
                animate(ball3, 150, function(){
                    animate(ball2, 150, function(){
                        animate(ball1, 150, function(){

                        })
                    })
                })
            })
        })

    </script>
</body>
</html>

原文地址:https://www.cnblogs.com/-beauTiFul/p/9195868.html

时间: 2024-10-22 12:14:18

10慕课网《进击Node.js基础(一)》初识promise的相关文章

进击Node.js基础(二)

一.一个牛逼闪闪的知识点Promise npm install bluebird 二.牛逼闪闪的Promise只需三点1.Promise是JS针对异步操作场景的解决方案 针对异步的场景,业界有很多解决方案,如回调.事件机制 Promise是一个对象,同时它也一种规范,针对异步操作约定了统一的接口,表示一个异步操作的最终结果以同步的方式来写代码,执行的操作是异步的,但是又保证程序的执行顺序是同步的. 原本是社区的一个规范的构想,被加入到ES6的语言标准里面,比如Chrom,Firefox浏览器已对

进击Node.js基础(一)

一.前言 1:Node.js本质上是用chrome浏览器 v8引擎 使用c++编写的JS运行环境 2:相比于JS没有浏览器安全级的限制,额外提供了一些系统级的API:文件读写,进程管理,网络通信等. 3:有很多借助NODE.JS完成的项目如appjs跨平台桌面应用,Jade和node.js组合使用便捷管理后台html模板,grunt自动化运行工具,express.js 4:nodejs.org,npmjs.com模块社区,github,stackoverflow 5:gitbash:类似cmd,

04慕课网《进击Node.js基础(一)》HTTP讲解

HTTP:通信协议 流程概述: http客户端发起请求,创建端口默认8080 http服务器在端口监听客户端请求 http服务器向客户端返回状态和内容 稍微详细解析: 1.域名解析:浏览器搜素自身的DNS缓冲,查看是否有被请求的域名所定义的IP,缓冲1分钟 ## 谷歌浏览器输入:chrome://net-internals/#dns 2.搜索操作系统自身的DNS缓冲(浏览器无缓冲或失效) 3.读取本地的HOST文件 C:\Windows\System32\drivers\etc 4.浏览器发起

08慕课网《进击Node.js基础(一)》事件events

引用events模块中的EventEmitter 事件的监听和发射 相同的事件发射数量有限,可以通过setMaxListeners设置峰值 var EventEmitter = require('events').EventEmitter var life = new EventEmitter() //加不加都没有报警告 //life.setMaxListeners(10) life.on('clickEvent',function(who){ console.log('给' + who + '

05慕课网《进击Node.js基础(一)》HTTP概念进阶

HTTP模块介绍 支持http协议的更多特性 不缓存请求和响应 API比较底层处理流相关,信息解析 HTTP相关概念 回调 将函数作为参数传到执行函数中,参数函数在执行函数中嵌套执行 function learn(something){ console.log(something); } function we(callback,something){ something+=' is cool' callback(something) } //具名函数 we(learn,'Nodejs') //

11慕课网《进击Node.js基础(一)》Buffer和Stream

Buffer (logo.png) 以下代码读取logo.png为buffer类型 然后将buffer转化为string 可以将字符串配置: data:image/png;Base64,Buffer.toString() var fs = require('fs') fs.readFile('logo.png',function(err,origin_buffer){ console.log('origin_buffer是否Buffer格式:'+Buffer.isBuffer(origin_bu

进击Node.js基础(二)promise

一.Promise JS动画settimeout,setinterval,requestAnimationFrame,promise npm install bluebird Javascript的特点是异步,Javascript不能等待,如果你实现某件需要等待的事情,你不能停在那里一直等待结果回来,相反,底线是使用回调callback:你定义一个函数,这个函数只有等到结果可用时才能被调用. 这种回调模型对于好的代码组织是没有问题的,但是也可以通过从原始回调切换到promise解决很多问题,将p

10个常见的Node.js面试题

如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. 在进入正文之前,需要提前声明两点: 这些问题只是Node.js知识体系的一个局部,并不能完全考察被面试者的实际开发能力. 对现实世界开发中遇到的问题,需要的是随机应变与团队合作,所以你可以尝试结对编程. Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听8

NodeJs&gt;-------&gt;&gt;第三章:Node.js基础知识

第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info  方法 1 console.log("this is a test string."); 1 node app1.js 1> info.log 1 console.log("This is a test String ."); 2 3 //从第二个参数开始,依序输出所有的字符串 4 console.log("%s","