张三学前端-Promise篇
1.前情提要
张三是一名刚毕业的前端小白,在经历了数百次面试无果后,张三已经身无分文,内心已经万念俱灰,准备明天再面一家,不行就回老家种地了,所以,张三对明天的面试十分重视,因为这将成为它人生的转折点。
第二天,张三如约到xx公司去面试,身经百战的张三,已经没有了刚毕业时的胆怯,更多了一丝成熟,当面试的问答部分顺利结束后,张三答的虽然说不上流畅,也算的上五五开了,就这样,面试官问张三:“你认为,你来到公司,能给公司创造多大的价值呢,就是你的工作效率会怎样呢?”。张三心想:这可是我最后一次机会了,我就是累死,我也得把握住。张三就说:“我承诺,我来到公司一定要好好工作,一个月内,我要做100个页面,如果我做完了,你给我发4000工资,如果我做不完,我倒给你4000工资”。哈哈,资本家听了都落泪,就这样,张三顺顺利利的入职xx公司。
2.new Promise
我来到公司一定要好好工作,一个月内,我要做100个页面,如果我做完了,你给我发4000工资,如果我做不完,我倒给你4000工资
这是张三履行的一个承诺我们可以用代码来实现以下:
-
let 张三的承诺 = new Promise((成功, 失败) => { 如果(一个月内做了100个页面){ 公司给张三4000块钱 }否则{ 张三给公司4000块钱 } })
-
接下来用代码转化一下
-
let p=new Promise((resolve,reject)=>{ let zsfinished=99;//张三一个月内完成的页面 let zsbase=0;//张三的资产 if(zsfinished>=100){ zsbase+=4000;//张三的资产=4000 resolve(+4000);//张三顺利完成任务,给张三发4000块钱 }else{ zsbase-=4000;//张三的资产=-4000 reject("没有完成承诺,扣钱");//扣钱的原因:没有完成任务 } })
一个月期限到了,张三这一个月内共做了99张页面,在一个月后第一天内的凌晨三点,张三终于完成了第一百张页面,张三心存余悸的交给了老板,老板却说:“一个月期限已经到了,你在一个月内没有完成100张页面,所以你的承诺是失败的,所以扣钱”。
- 知识点1:承诺的状态一旦发生改变,即使再执行
resolve()
还是rejecte()
方法,状态不会再改变了,因为你的承诺已经是过去式了,一个承诺的状态只能改变一次。
-------------------------------------------------------------2021-11-17未完-----------------------------------------------------------------
人人笑张三,人人不如张三。