擁抱ES6(四)

promise補充

除了最原始的then調用,promise還支持all和race調用。

  • promise.all將所有請求的數據存放在數組內,
  • promise.race方法會獲取最先讀取完的數據,此時獲取的數據不再是數組形式。
const fs = require('fs')
const readFilePromise = fileName=> {
    return new Promise((resolve, reject) => {
        fs.readFile(fileName, (err, data) => {
            if (err) {
                reject(err)
            }else{
              resolve(data.toString())
            }

        })
    })
}

const p1 = readFilePromise('./1.json')
const p2 = readFilePromise('./2.json')

Promise.all([p1, p2]).then((results) => {
    console.log(results)//數組
})

Promise.race([p1, p2]).then((data) => {
    console.log(data)//注意 此時data爲p1,p2中最先讀取完的數據
})

對象默認屬性

有時候我們需要給對象設置默認屬性,通過使用…運算符可以更優雅的實現

function getDefaultProp(obj) {

    const defaultProps = {
        name: "tom",
        age: 18
    }
    obj = {
        ...defaultProps,
        ...obj
    }
    return obj;
}

var obj = {
    age: 20,
    name: "jack"

}

console.log(getDefaultProp())//{ name: 'tom', age: 18 }
console.log(getDefaultProp(obj))//{ name: 'jack', age: 20 }

函數默認參數

es6中允許函數設置默認參數,甚至可以設置強制參數,更方便開發

強制參數



var required = () => {throw new Error('缺少參數')};
var add = (a = required(), b = required()) => a + b;
console.log(add(1, 2)) //3
console.log(add(1))//報錯 缺少參數


默認參數

var defaultAdd= (a = 1, b = 2) => a + b;
console.log(defaultAdd())//3

使用Set去重數組

    var arr = [10, 2, 45, 100,10,10,2,45,100,100];
     function arr_no_repeat(arr) {
        return [...new Set(arr)];
    }
    console.log(arr_no_repeat(arr)) //[10, 2, 45, 100]
發佈了468 篇原創文章 · 獲贊 827 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章