ES 6新規加入内容(3)

3384 ワード

class(クラス);

class Person{
    constructor(){// 
        this.age=30;
    }
    say(name){// ===Person.prototype.say   
        console.log(" :"+name+this.age)
    }
}
// let p=new Person();
// p.say("Tom")
class Student extends Person{//     this ( ) super() this
    constructor(age){
        super();
        this.age = age;
    }
}
let s = new Student(240000);
s.say(" ")

reset


reset演算子...(3点)余剰パラメータを表す
function fun(d,...a){// ...a 
    console.log(a,d,e)// 
 }
 fun(2,23,4,5,43,15,12)

...(または3つのポイント)は拡張演算子を表します(これは気まずいです)

let arr=[2,3,4,5];
let arr2=[6,7,8]
console.log(arr.concat(arr2))// 

console.log([...arr,...arr2])//  
// 

function foo(x,y,z){
    console.log(x+y+z);// 6,
}
let arr3 = [1,2,3];
foo(...arr3)// , 3 (1,2,3)

let s = new Set([1,2,3,3])//   
console.log([...s])//    Set 

promise


promiseは非同期操作のメッセージを伝達することを約束し、将来知ることができる結果の3つの状態を表します:pending(進行中の待機時間)resolved(解決された)完了reject(却下)に問題が発生しました
***promise.all({promise1,peomoise2,......})すべての非同期関数の実行が完了すると呼び出され、最も遅いものを基準とする***promise.race()コンテストモードは最速を基準に最速結果のみを返す
//ES5 
// setTimeout     :ajax
// 
// function fun(callback){
//  setTimeout(function(){
//      console.log(" ")
//      callback(" ")
//  },1000)
// }
// // 
// fun(function(res){
//  console.log(res);
// });

簡単なpromiseの例
 let promise =new Promise(function(resolve,reject){
//  if (!true) {// 
//      resolve()
//  }else{
//      reject()
//  }
// })

// promise.then(function(){
//  console.log(" ")
// },function(){
//  console.log(" ")
// })

これは複雑な多層コールバックの例です
function sync1(){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            if (5>4) {
                resolve(" ")
            }else{
                reject(" ")
            }
        },1000)
    })
}
function sync2(result){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            if (true) {
                resolve(" :true"+"---")
            }else{
                reject(" :false")
            }
        },2000)
    })
}
function sync3(result){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            if (true) {
                resolve(" 3:true"+"---")
            }else{
                reject(" 3:false")
            }
        },2000)
    })
}

es 6のpromiseを用いてコールバック関数を実現する
// sync1().then(function(res){
//  console.log(abc)
//  console.log(res)
//  return sync2(res);
// }).then(function(r2){
//  console.log(r2)
//  return sync3()
// }).then(function(r3){
//  console.log(r3)
//  return "abc"
// }).then(function(r4){
//  console.log(r4)
//  return "def"
// }).then(function(r5){
//  console.log(r5)
// }).catch(function(){
//  // catch() 
//  // 
//  console.log(" ")
// });

次に、上記のテストに関連するpromise.all()とpromise.race()
// Promise.all([sync1(),sync2(),sync3()]).then(function(res){
//  console.log(res)
// },function(){})

// Promise.race([sync1(),sync2(),sync3()]).then(function(res){
//  console.log(res)
// },function(){})