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最后输出。

相关文章
相关标签/搜索