本文主要是介绍promise === 我爸???,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
promise到底干啥的
相信有过开发经验的小伙伴对promise都不陌生,经常在用到异步函数的地方用的到promise,今天我们用较为通俗易懂的方式来理解promise
基础知识点
关于js是单线程大家应该都有所了解,但是代码一行行执行必然会造成堵塞,因此js有异步事件,很多技术大牛写的js 事件循环都很好理解,大家不了解的可以去看看
假如有这样一个场景
你刚下完课,五点半到六点半,你妈让你在家做作业,但是这期间王阿姨让你妈去打麻将,你妈就不等你做完作业再去打,而是直接去打了,但是你妈呢,需要知道你作业做完了没,在六点半的时候,如果你没有做完,你妈就会决定,是继续打麻将,还是回来打你,因此她需要你做完作业的一个反馈来决定她接下来干啥,这样在你妈的上下文中,让你去做作业就是一个异步操作,她主要还是想打麻将
代码场景
1.我直接在vue的里面写的
首先,在method 定义一个方法,用来获取你做作业的结果是什么,这个结果有两个,结果一:你做的很棒,结果二:你作业没有做完,异步我们用延时器来模拟
但是这么写存在的问题是,我怎么知道你setTimeout里面做作业做的结果是啥,如果发生错误,或者信息不是我想要的呢, 而且就算利用函数的返回值
那么return该返回啥呢
2.这时候你妈派了一个情报员,你爸盯着你写作业,但是你爸并不能干扰你做作业的动作,他只是监听并检查你作业写完了没,当你执行了写作业后。他会给你妈发短信说写完了,没有就说没有写完,因此promise 在这里应该是等于你爸爸的一个作用~~~
3.上代码
promise有两个回调,一个成功的回调,一个失败的回调
这里是固定语法,在reslove成功的回调里面传你想要的参数,在reject里面传失败的参数
然后你妈调用的时候
调用函数得到一个promise对象,通过调用then可以得到一个成功的回调和一个失败的回调。参数就是在前面传过来的,我们看下结果
小朋友,你是否有很多???
很多小伙伴可能迫不及待想遭受一顿毒打,那么错误的回调啥时候会触发呢
别急,我们不写英语,来看看结果
当然还有这个
本文意在给大家理解promise在实际开发中的用途,并未涉及到一些知识点,大家有不明白的建议去自行学习,看到这里还不点赞,过分了啊~~~~~
这篇关于promise === 我爸???的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!