前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Promise对象、传参以及错误处理

Promise对象、传参以及错误处理

作者头像
十月梦想
发布2018-10-09 15:26:05
4.4K0
发布2018-10-09 15:26:05
举报
文章被收录于专栏:十月梦想

在大部分情况下我们的程序都是在进行异步操作,需要嵌套多次callback,使得程序变得复杂!ES6中提供了Promise对象,将非阻塞I/O变为阻塞I/O,把异步变同步解决一些异步问题!

我们使用promise,返回一个状态后,使用then执行下一步方法

如何使用Promise?

使用Promise

代码语言:javascript
复制
		<script>
			console.log("开始执行")
			let p = new Promise((resolve,reject)=>{
				setTimeout(()=>{
					console.log("执行中...")
					resolve()
				},2000)
			})
			p.then(()=>{
				console.log("执行结束")
			})
		
		</script>

new 一个Promise对象,传入参数resolve,和reject,resolve表示成功执行反馈结果,reject表示未成功执行!

传参

我们可以在resolve中定义实参,在then方法后接收到

代码语言:javascript
复制
			console.log("开始执行")
			let p = new Promise((resolve,reject)=>{
				setTimeout(()=>{
					console.log("执行中...")
					resolve(6)
				},2000)
			})
			p.then((timer)=>{
				console.log(timer+"s执行结束")
			})

错误处理

我们如何传递错误的promise呢?我们可以将状态修改为reject,表示错误执行未成功,再次可以传递实参到then方法的第二个参数执行时候接收这个错误抛出传递的信息!

代码语言:javascript
复制
<script>
			console.log("开始执行")
			let p = new Promise((resolve,reject)=>{
				let a = 0;
				setTimeout(()=>{
					if(a===true){
						console.log("执行中...")
						resolve()
					}else{
						console.log("任务执行失败")
						reject("404 NOT");
					}
				},2000)
			})
			p.then(()=>{
				console.log("执行结束")
			},(err)=>{
				console.log("执行失败,重新尝试"+err)
			})
		
		</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-5,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Promise
  • 传参
  • 错误处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档