zoukankan      html  css  js  c++  java
  • nodejs Api和ECMAScript新特性

      ES7新特性:Async Functions (异步函数):

         异步是什么

       无法立即获得执行结果,满足某种条件的时候才执行

       JS中的异步操作:1、定时器都是异步操作2、事件监听(事件绑定)都是异步操作3、AJAX中一般我们都采取异步操作(也可以同步)4、回调函数可以理解为异步(不是严谨的异步操作)剩下的都是同步处理

       示例: for (var i = 1; i <= 3; i++) {

            setTimeout(function(){

              console.log(i);

            }, 0);

            };

         异步的好处

        Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。

     这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。

    • 异步函数声明: async function foo() {}
    • 异步函数表达式: const foo = async function () {};
    • 异步函数定义:let obj = { async foo() {} }
    • 异步箭头函数: const foo = async () => {};

      async(异步) 函数总是返回 Promises,Promise对象必须实现then方法,then是promise规范的核心,而且then方法也必须返回一个Promise对象,同一个Promise对象可以注册多个then方法,并且回调的执行顺序跟它们的注册顺序一致;

    Promise对象:Promise是异步编程的一种解决方案

     //定义一个Promise对象玩玩

    var p = new Promise(function(resolve, reject){
        //做一些异步操作
        setTimeout(function(){
            console.log('执行完成');
            resolve('随便什么数据');
        }, 2000);
    });

    参考技术文档:

    对js Promise理解:https://blog.csdn.net/qq_29849641/article/details/54970328

    es6学习笔记10--箭头函数:https://www.cnblogs.com/huansky/p/5684867.html

    nodejs之async异步编程:http://cnodejs.org/topic/54acfbb5ce87bace2444cbfb

    ES2017 新特性:Async Functions (异步函数):http://www.css88.com/archives/7731

    浅谈ES6的Promise对象:https://www.jianshu.com/p/c98eb98bd00c

    彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇):https://www.cnblogs.com/malingyang/p/6535805.html

    大白话讲解Promise(一):https://www.cnblogs.com/lvdabao/p/es6-promise-1.html

    Javascript异步编程的4种方法:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html?bsh_bid=1736591883

  • 相关阅读:
    Scrapy爬虫之from import错误解决
    Mysql之IF嵌套和CASE WHEN的转化
    win10安装Redis
    win10安装elasticsearch
    Flink输出到JDBC
    Flink输出到Elasticsearch
    Flink输出到Redis
    IntelliJ IDEA 激活—2020年1月10号
    Flink输出到Kafka(两种方式)
    用C写一个功能较为完善的贪吃蛇小游戏
  • 原文地址:https://www.cnblogs.com/geekjsp/p/8959311.html
Copyright © 2011-2022 走看看