为了账号安全,请及时绑定邮箱和手机立即绑定

$.Mutex()怎么用,用来干嘛?

$.Mutex()怎么用,用来干嘛?

慕丝7291255 2023-03-03 14:10:40
$.Mutex = (function() {function Mutex() {this.def = $.Deferred().resolve();}Mutex.prototype.exec = function(action) {var current = this.def;var next = this.def = $.Deferred();return current.then(function() {return $.when(action()).always(function() {next.resolve();});});};return Mutex;})();
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

  1. Deffered的作用: 在没有这个对象之前,想要将异步的操作变为同步的,只能使用回调函数.这样的话代码的可维护性可读性会大大降低.

  2. $.Deferred().resolve()是标记当前函数执行结束,$.when(defer1,defer2).then(funcCallback)表示当前的funcCallback要等defer1,defer2执行结束(即每个deffered对象都用resolve标记)之后再执行,跟defer1和defer2谁先执行谁后执行没有关系.

  3. 用法:$.Mutex.exec(defer1,defer1); 作用:使用Mutex使defer1,defer2只执行一次,相当于单例


查看完整回答
反对 回复 2023-03-06
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

顺序处理耗时的Deferred操作,
比如有四个耗时的方法func1,func2,func3,func4
$.Mutex.exec(func1);
$.Mutex.exec(func2);
$.Mutex.exec(func3);
$.Mutex.exec(func4);
这四个方法就会顺序执行

查看完整回答
反对 回复 2023-03-06
  • 2 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信