promise學習

promise是異步操做的一種解決方案,簡單來講,就是一個容器裏面保存着某個將來纔會結束的事件(異步操做)。promise

promise特色:(1)、promise三種狀態:pending(進行中),fulfilled(已成功),rejected(已失敗)。(2)、resolved(已定型)異步

promise缺點:(1)、一旦新建就會馬上執行,沒法中途取消。(2)、不設置回調函數,promise內部拋出的錯誤,不會反映到外部。(3)、處於pending狀態時候,就是不知道目前進展到哪一個階段(剛剛開始仍是即將完成)。函數

promise基本用法對象

promise對象是個構造函數,用來生成promise實例。事件

const promise = new Promise(function(resolve,reject){回調函數

  if("異步執行成功"){同步

    resolve(value)io

  }else{console

    reject(error)function

  }

})

promise.then(function(value){


},function(error){

})

promise對象的簡單例子:

function timeout(ms){

  return new Promise((resolve,reject)=>{

    setTimeout(resolve,ms,'done');

  })

}

timeout(100).then((value)=>{

  console.log(value)

})

上面代碼中,timeout返回一個promise實例,表示一段時間後纔會發生的結果。過了指定時間,promise實例的狀態變爲resolved.就會觸發then方法綁定的回調函數。

promise新建後就會當即執行:

let promise = new Promise(function(resolve,reject){
  console.log('promise')
  resolve()
})
promise.then(function(){
  console.log('resolved')
})
console.log('hu')

promise新建後就會當即執行,因此首先輸出的是promise,而後,then方法指定的回調函數,將在當前腳本全部同步任務執行完成之後纔會執行,因此resolved最後輸出。

相關文章
相關標籤/搜索