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

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

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

如何使用Promise?

使用Promise

		<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方法后接收到

			console.log("开始执行")
			let p = new Promise((resolve,reject)=>{
				setTimeout(()=>{
					console.log("执行中...")
					resolve(6)
				},2000)
			})
			p.then((timer)=>{
				console.log(timer+"s执行结束")
			})

错误处理

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

<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>


本博客所有文章如无特别注明均为原创。作者:十月梦想复制或转载请以超链接形式注明转自 十月梦想博客
原文地址《Promise对象、传参以及错误处理
分享到:更多

相关推荐

未登录,暂时无法评论和查看评论!

点击这里给我发消息点击此处联系博主!