nodejs Api和ECMAScript新特性

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

     异步是什么

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

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

     异步的好处

    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方法,并且回调的执行顺序跟它们的注册顺序一致;

扫描二维码关注公众号,回复: 76215 查看本文章

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

Javascript异步编程的4种方法

猜你喜欢

转载自www.cnblogs.com/geekjsp/p/8959311.html
今日推荐