*js的promise

1、Promise是一个ES5末期提供的构造函数,ES6正式写入标准浏览器厂商实现了它的功能,它解决了异步编程的回调函数的无限制嵌套 的地狱回调 的问题

<script>
//es6解决异步的promsie方式
			xx1()
			.then(xx2())
			.then(xx3())

			//es7
			await xx1()
			await xx2()
			await xx3()
			console.log(typeof Promise)
			console.log(typeof [10,203,40])

2、promise对象是一种特殊的数据容器,promise对象内部是同步的代码环境

3、promise对取数据的方式是通过调用它的then方法传入回调函数来取数据,是一种异步函数模式(也就是then函数是一个异步函数,传入的回调函数会延时调用)

4、then函数有返回值

          如果then的回调函数的返回值是promise对象,那么then函数的返回值就是它

          如果then的回调函数的返回值不是promise对象,那么then函数的返回值就是把它包装为一个新的promise对象返回

5、浏览器的异步任务如何开子线程执行的?

             js是单线程的语法,不能开子线程 但是js的底层是js引擎 引擎是c/c++代码可以开子线程 然后给js提供异步api,如:计时器 、promise 、console.log

6、promise内部的异步任务遵循浏览器的异步任务的执行

<script>
			//面试题
			var p1=new Promise((resolve,reject)=>{
				console.log(1)
				setTimeout(()=>{
					console.log(2)
				},0)
				resolve(4)
				console.log(3)
			})
			console.log(5)
			p1.then((n)=>{
				console.log(n)
				return new Promise(()=>{
					setTimeout(()=>{console.log(8)},0)
					console.log((7))
				})
			})
			console.log(6)
			//1 3 5 6 4 7 2 8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值