博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
promise学习
阅读量:4510 次
发布时间:2019-06-08

本文共 1056 字,大约阅读时间需要 3 分钟。

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)

  }else{

    reject(error)

  }

})

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

 

转载于:https://www.cnblogs.com/zwjx/p/9685077.html

你可能感兴趣的文章
C++ NULL与nullptr的区别
查看>>
Discretized Streams, 离散化的流数据处理
查看>>
Spark源码分析 – SchedulerBackend
查看>>
黑马程序员 Java输入\输出
查看>>
python字符串处理
查看>>
live555学习笔记4-计划任务(TaskScheduler)深入探讨
查看>>
【Unity3D】获取鼠标在三维空间(世界坐标系)的位置
查看>>
Python虚拟机函数机制之名字空间(二)
查看>>
线段树
查看>>
SharePoint2010联合搜索——Google、百度
查看>>
php静态
查看>>
python基础之文件操作
查看>>
PAT B1033 旧键盘打字
查看>>
Fedora 8/9更新换源和更新中断解决方法
查看>>
[唐胡璐]Selenium技巧 - 定制元素属性检查,并写到ReportNG中
查看>>
hdu 1695 莫比乌斯基础题
查看>>
做题记录 To 2019.2.13
查看>>
Cg(C for Graphic)语言表达式与控制语句(转)
查看>>
C++中Static的作用
查看>>
一套完整的javascript面试题
查看>>