1. 程式人生 > 其它 >ES9物件和Promise的擴充套件

ES9物件和Promise的擴充套件

今天小編更新的這篇文章相對比較好理解,一個是對物件的擴充套件,和之前es6中的陣列擴充套件很類似,另外對Promise的擴充套件,也在query中的ajax類似,內部沒有很多,所以小編將這兩塊內容放在一起更新。期待著大家一起進步。大家還可以關注我的微信公眾號,蝸牛全棧。

一、物件拓展

1、es6中的陣列拓展運算子

const arr1 = [1,2,3]
const arr2 = [4,5,6]
const arr3 = [...arr1,...arr2] // [1,2,3,4,5,6]

2、克隆物件

const obj1 = {
        name:"lilei",
        age:
12 } const obj2 = { work:"teacher" } // 克隆物件:深拷貝 const obj3 = {...obj1} // {name:"lilei",age:12} obj1.age = 18 console.log(obj3) // {name:"lilei",age:12}

3、合併物件:如果屬性有相同的,後面的屬性值會替換掉前面的屬性值

const obj1 = {
  name:"lilei",
  age:12
}

const obj2 = {
  work:"teacher",
  age:20
}

const obj4 = {...obj1,...obj2}
console.log(obj4) 
// {name:"lilei",age:20,work:"teacher"}

4、剩餘運算子:作為引數的時候,必須放在最後,否則會報

const obj1 = {
  name:"lilei",
  age:34,
  work:"teacher",
  course:"es"
}

const {name,age,...rest} = obj1
console.log(name) // lilei
console.log(name) // 34
console.log(rest) // { work:"teacher",course:"es"}

二、Promise擴充套件:finally(非同步執行結束之後要執行的內容,必須載入中互動結束和資料庫操作之後關閉資料庫連線)

new Promise((resolve,reject) => {
  setTimeout(() => {
    resolve('success')
  },1000)
}).then(res => {
  console.log(res)
}).catch(err => {
  console.log(err)
}).finally(() => { // 類似ajax裡面的complete
  console.log('finally')
}) // success finally