亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

$.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 關注
  • 106 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號