|
|
|
|
|
|
|
|
纪念花粉俱乐部注册花粉数超过1000万
嘉年华活动限定勋章积分達到50可获得
嘉年华活动限定勋章,积分达到50可获得
嘉年华活动限定勋章积分达到50可获得
关注华为收到短信不通知花粉俱乐部微信公众平囼——“华为收到短信不通知花粉俱乐部”
Promise对象用于异步操作它表示一个尚未完成且预计在未来完成的异步操作。
JavaScript的执行机制昰「单线程」
所谓的单线程,是指JS引擎中负责解释和执行JavaScript的代码的线程只有一个也就是一次只能完成一项任务,这个任务执行完了之後才能执行下一个它会「阻塞」其他任务。这个任务可称为主线程
但实际上还有其他线程,如事件触发线程、ajax请求线程等
这也就引發了同步和异步的问题。
同步模式即上述所说的单线程模式,一次只能执行一个任务函数调用后需等到函数执行结束,返回执行的结果才能进行下一个任务。如果这个任务执行的时间较长就会导致「线程阻塞」。
这个例子就是同步模式其中while是一个死循环,将会堵塞进程所以第三句一直不会执行。
同步模式比较简单也较容易编写。但问题也显而易见如果请求的时间较长,而阻塞了后面代码的執行体验是很不好的。因此对于一些耗时的操作异步模式则是更好的选择。
异步 异步模式即与同步模式相反,可以一起执行多个任務函数调用后不会立即执行返回的结果。
我们可以看到计时器的时间为0,但是taskB还是比taskA先执行这是因为定时器是异步的,异步问题会茬当前脚本的所有同步任务执行完才会执行
如果将上例注释去掉,这个异步(定时器)是不会执行的成为了死循环,堵塞了同步任务進程
类似构建对象,我们使用new来构建一个PromisePromise接受一个「函数」作为参数,该函数的两个参数分别是resolve和reject这两个函数就是就是「回调函数」,由JavaScript引擎提供
resolve函数的作用:在异步操作成功时调用,并将异步操作的结果作为参数传递出去;
reject函数的作用:在异步操作失败时调用,并将异步操作报出的错误作为参数传递出去。
Promise实例生成后可以使用then方法指定resolve状态和reject状态的回调函数。
例:封装一个弹框(confirm())
加载图片成功后获得图片的宽还有打印“加载成功”提示文本。
例:加载一张图片在图片加载成功后输出图片的宽度和高度,若图片加载失败則显示
问题:因为 $axios后面还要跟具体的不同而两个方法(get()、post())所以不能使
解决:使用类封装(混合模式:属性定义在构造函数中,方法定義在原型下)
也可以将封装的内容和对封装的使用进行分离
/*创建一个构造函数*/
/*先创建构造函数*/
|
|
|
|
花粉帮帮堂 发表于 20:20:22 来自:浏览器
|
|
|
|
|
|
|
|
从我的相册中选择图片:
点击图片添加到帖子内容中
花粉好机友注册时间大于99天
花粉俱乐部论坛用户破1亿纪念勋章
纪念花粉俱乐部注册花粉数超过1000万
嘉年华活动限定勋章,积分达到50可获得
嘉年华活动限定勋章积分达到50可獲得
嘉年华活动限定勋章,积分达到50可获得
关注华为收到短信不通知花粉俱乐部微信公众平台——“华为收到短信不通知花粉俱乐部”
技術积分达到30分时可获得此勋章
技术积分达到6分时可获得此勋章
2019年荣耀11.11花粉“升值”勋章
花粉俱乐部7周年纪念勋章
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。