ES6异步编程基础语法

ES6类

_

数据类型:
number、string、boolean、Object、undefined、function

用typeof检测出来数据类型:
    symbol

new Number(12)
new String()
new Array()

symbol 使用情况一般

定义:
let syml = Symbol(‘aaa’);

注意:
1. Symbol 不能new
2. Symbol() 返回是一个唯一值
坊间传说, 做一个key,定义一些唯一或者私有一些东
3. symbol是一个单独数据类型,就叫 symbol, 基本类型

4. 如果symbol作为key,用for in循环,出不来

json -> for in


箭头函数
() =>{}

generator函数
生成器

解决异步深度嵌套的问题, async

语法:
function * show(){
yield
}
function* show(){
}
function *show(){
}

定义:
    function * gen(){
        yield 'welcome';
        yield 'to';
        return '牧码人';
    }
调用:
    let g1 = gen();
    g1.next();  // {value:'welcome', done:false}
    g1.next();  // {value:'to', done:false}
    g1.next();  // {value:'牧码人', done:true}

上述调用,手动调用,麻烦

for .. of 自动遍历 generator

return的东西,它不会遍历

generator不仅可以配合 for … of …

还可以:

  1. 解构赋值:
    let [a, …b] = gen();
  2. 扩展运算符
    ‘…’

    console.log(…gen());

  3. Array.from()
    console.log(Array.from(gen()));

generator结合 axios数据请求:


异步: 不连续,上一个操作没有执行完,下一个操作照样开始
同步: 连续执行,上一个操作没有执行完,下一个没法开始

关于异步,解决方案:
a). 回调函数
b). 事件监听
c). 发布/订阅
d). Promise对象

co….

ES2017,规定 async

nodeJs

读取文件  fs.readFile

1. promise
2. genrator

3. async

async function fn(){ //表示异步,这个函数里面有异步任务
let result = await xxx //表示后面结果需要等待

}

async特点:
1. await只能放到async函数中
2. 相比genrator语义化更强
3. await后面可以是promise对象,也可以数字、字符串、布尔
4. async函数返回是一个promise对象

5. 只要await语句后面Promise状态变成 reject, 那么整个async函数会中断执行

如何解决async函数中抛出错误,影响后续代码:
a).

try{

}catch(e){

}

b). promise本身catch


个人建议大家:

    try{
        let f1 = await readFile('data/a.txt');
        let f3 = await readFile('data/c.txt');
        let f2 = await readFile('data/b.txt');
    }catch(e) {}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值