JavaScript??????4?????
???????????? ???????[ 2013/1/9 10:28:52 ] ????????
???????????????
??????????·???????????????????????в?????????????????????????????????
??????????f1??f2???????????f1??????????????????jQuery??д??????
f1.on('done'?? f2);
???????????д????????????f1????done????????f2???????f1???и?д??
1.function f1(){
2.setTimeout(function () {
3.// f1?????????
4.f1.trigger('done');
5.}?? 1000);
6.}
????f1.trigger('done')????????????????????done??????????????f2??
????????????????????????????????????????????????????????????????????????“????”??Decoupling???????????????黯???????????????????????????????????????ú????????
????????????/????
??????????“???”?????????????“???”??
???????????????????“???????”?????????????????????????“????”??publish?????????????????????????????“????”??subscribe???????????????????????????????С??????“????/??????”??publish-subscribe pattern???????“???????”??observer pattern????
??????????ж?????????????????Ben Alman??Tiny Pub/Sub??????jQuery??????????
?????????f2??“???????”jQuery????“done”????
jQuery.subscribe("done"?? f2);
???????f1?????????д??
1.??function f1(){
2.setTimeout(function () {
3.// f1?????????
4.jQuery.publish("done");
5.}?? 1000);
6.}
????jQuery.publish(“done”)????????f1?????????“???????”jQuery????“done”???????????f2????С?
????????f2?????к??????????????unsubscribe????
jQuery.unsubscribe("done"?? f2);
???????????????????“???????”????????????????????????????????????“???????”??????????????????????ж??????????????????????С?
???????Promises????
????Promises??????CommonJS??????????????淶?????????????????????
??????????????????????????????????Promise??????????????then?????????????????????????磬f1????????f2??????д???
f1().then(f2);
????f1??????????д????????????jQuery????????
1.function f1(){
2.var dfd = $.Deferred();
3.setTimeout(function () {
4.// f1?????????
5.dfd.resolve();
6.}?? 500);
7.return dfd.promise;
8.}
????????д?????????????????????????д??????????????????ú?????????????????????????????????????????????
???????磬???????????????
f1().then(f2).then(f3);
????????磬??????????????????????
f1().then(f2).fail(f3);
????????????????????????????????е???????????????????????????????????????????????????С???????????????????????????????????????????????д???????????????
??????

???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11