promise用法

promise的用法:

1,promise按照用途来解释:
(1)主要用于一步计算;
(2)可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果;
(3)可以在对象之间传递和操作promise,帮助我们处理队列。
2,异步产生:(浏览器中的JavaScript)
(1)异步操作以事件为主;
(2)回调主要出现在Ajax和File API;
(3)Node.js对异步的依赖加剧(无阻塞高并发,是Node.js的招牌,异步操作是其保 障,大量操作依赖回调函数。)使用Node.js时,稍有不慎,就会踏入“回调地狱”。
3,回调产生4个问题:
(1)嵌套层次很深,难以维护;
(2)无法正常使用return和throw;
(3)无法正常检索堆栈信息;
(3)多个回调之间难以建立联系;
4,promise详解:

new promise(
	//执行器
	function(resolve,reject){
		//一段耗时很长的异步操作
		resolve();		//数据处理完成
		reject();		//数据处理出错
	}
)
.then(function  A() {
		//	成功,下一步
},function	B(){
		//	失败,做相应处理
});
  1. promise 是一个代理对象,它和原先要进行的操作并无关系,只是把原先的操作放在了执行器里面;
  2. 它通过引入一个回调,以此把其他的回调展开,全部变成基于promise的回调,避免更多的回调。
  3. promise有3个状态:
    (1)pending 【待定】初始状态;
    (2)fulfilled 【实现】操作成功;
    (3)rejected 【被否决】操作失败;
  4. 当promise状态发生改变,就会触发.then()里的响应函数处理后续步骤;
  5. promise状态一经改变,不会再变。
    在这里插入图片描述
    5,假如一个promise已经完成,再.then()会怎样?
    在任何地方生成了promise队列之后,我们可以把promise作为一个变量传递到其他地方
let promise = new Promise (resolve => {
    setTimeout(()=>{
        console.log("the promise fulfilled");
        resolve("hello,world");
    },1000);
});
setTimeout(()=>{
    promise.then(value => {
        console.log(value);
    });
},3000);

//	打印结果:
//	the promise fulfilled
//	hello,world

6,.then()详解:

  1. .then() 接受两个函数作为参数,分别代表fulfilled和rejected;
  2. .then()返回一个新的promise实例,所以它可以链式调用;
  3. 当前面的promise状态改变时,.then()根据其最终状态选择特定的状态响应函数执行;
  4. 状态响应函数可以返回新的promise或其它值;
  5. 如果返回新的promise,那么下一级.then()会在新的promise状态改变之后执行;
  6. 如果返回其它任何值,则会立刻执行下一级.then()。
  7. .then()里面有.then()的情况:
    因为.then()返回的还是promise实例,会等里面的.then()执行完再执行外面的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值