es6的一些语法

2019-02-01  本文已影响0人  HonneyHao

1.let(块级作用域) ,const(常量)

2. 模板字符串: ·aaaa${aaa}}·

3.方法的简写:

箭头函数里面this指向上下文
()=>{
}
var add = (a,b)=>{
  return a+b
}

4.属性的简写:

var name="aaa";
var a = {name}

5.外部获取异步方法里面的数据:

1.回调函数
function getData(){
    setTimeout(() => {
        var a = 1;
        return a;//console.log(getData())会报错,因为函数同步执行时并没有return,所以得到undefined
    }, 1000);
}
// 正确方法:
function getData(callBack){
    setTimeout(() => {
        var a = 1;
        callBack(a)
    }, 1000);
}
function a(a){
    return a;
}
console.log(getData(a))
2.promise来处理异步
var p = new Promise(function(resolve,reject){
    setTimeout(() => {
        //模拟异步数据
        var name = "杭三";
        let num = Math.random();
        console.log(num)
        if(num>0.7){
            //模拟成功
            resolve(name)
        }else{
            //模拟失败
            reject("err")
        }
    }, 1000);
})
p.then((data)=>{
    console.log(data)
})
//也可以这样:
function getData(resolve,reject){
    setTimeout(() => {
        //模拟异步数据
        var name = "杭三";
        let num = Math.random();
        console.log(num)
        if(num>0.7){
            //模拟成功
            resolve(name)
        }else{
            //模拟失败
            reject("err")
        }
    }, 1000);
}
var p = new Promise();
p.then(()=>{}
//还可以这样:
function getData(){
    return new Promise((resolve,reject)=>{
        setTimeout(() => {
            var name = "aaa";
            resolve(name)
        }, 1000);
    })
}

6.async 和await(ES7的语法)

async是让方法变成异步
await是等待异步方法执行完毕
await有阻塞功能,把异步函数变后才能同步执行的(主要功能)

//async让这个方法变成了异步方法,这两个的组合相当于new Promise和.then()
async function delay(){
    return "一个数据"
}

async function getData(){
    //只有在异步方法里面(async),才可以使用await
    var d = await delay();
    console.log(d)
}
getData()//调用该异步方法
上一篇 下一篇

猜你喜欢

热点阅读