{"id":19916866,"url":"https://github.com/rubylouvre/mmdeferred","last_synced_at":"2025-05-03T06:30:38.474Z","repository":{"id":9638054,"uuid":"11570033","full_name":"RubyLouvre/mmDeferred","owner":"RubyLouvre","description":"一个完全遵循Promise/A+规范的Deferred 库","archived":false,"fork":false,"pushed_at":"2016-08-05T10:00:14.000Z","size":144,"stargazers_count":46,"open_issues_count":2,"forks_count":19,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T00:57:04.673Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RubyLouvre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-22T00:34:58.000Z","updated_at":"2024-01-30T12:47:36.000Z","dependencies_parsed_at":"2022-09-22T18:00:45.674Z","dependency_job_id":null,"html_url":"https://github.com/RubyLouvre/mmDeferred","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RubyLouvre%2FmmDeferred","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RubyLouvre%2FmmDeferred/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RubyLouvre%2FmmDeferred/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RubyLouvre%2FmmDeferred/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RubyLouvre","download_url":"https://codeload.github.com/RubyLouvre/mmDeferred/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252154732,"owners_count":21702982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T21:47:51.314Z","updated_at":"2025-05-03T06:30:38.172Z","avatar_url":"https://github.com/RubyLouvre.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"mmDeferred\n==========\n\n一个完全遵循Promise/A+规范的Deferred 库\n\n\u003ch3\u003eapi\u003c/h3\u003e\n\u003col\u003e\n    \u003cli\u003eDeferred(mixin?):  可传入一个可选的对象或函数，修改整条Deferred链的所有Promise对象，它将返回一个Deferred对象。\n    相当于jQuery的promise(obj)，将一个普通对象转换为Promise 对象的功能。\n    \u003c/li\u003e\n    \u003cli\u003estate(), 位于Deferred对象上， 将得到Deferred对象的状态，\"fulfilled\", \"rejected\", \"pedding\", 一开始是\"pedding\"。\n        当对象变成\"fulfilled\"或 \"rejected\"状态时，无法再执行resolve, reject方法。resolve会将对象改变成\"fulfilled\",但如何执行时抛错，会转为\"rejected\"状态；\n        reject会将对象改变成\"rejected\"；notify与ensure不会改变状态；\n    \u003c/li\u003e\n    \u003cli\u003epromise: 位于Deferred对象上， 一个对象属性，拥有then, otherwise, ensure方法，是负责收集回调的\u003cbr/\u003e\n        （相当而言，Deferred对象则有resolve, reject, notify方法，是负责触发回调的）\u003c/li\u003e\n    \u003cli\u003ethen(resolvefn,rejectfn,notifyfn, ensurefn)，位于Promise对象上，依次用来重写默认的\"resolve,reject,notify, ensur\"回调\u003c/li\u003e\n    \u003cli\u003eensure: 位于Promise对象上，重写默认的ensure回调——该回调不接受参数，是总会触发的回调\u003c/li\u003e\n    \u003cli\u003eotherwise 位于Promise对象上，重写默认的rejected回调——出错时触发的回调\u003c/li\u003e\n    \u003cli\u003enotify： 位于Deferred对象上，用于触发notify回调——允许多次触发的回调\u003c/li\u003e\n    \u003cli\u003eresolve： 位于Deferred对象上，用于触发fulfill回调——正常触发的回调\u003c/li\u003e\n    \u003cli\u003ereject： 位于Deferred对象上，用于触发rejected回调——出错时触发的回调\u003c/li\u003e\n    \u003cli\u003eall： Deferred的静态方法，要求传入多个Promise对象，当它们都正常触发时，就执行它的resolve回调。相当于jQuery的when方法，但all更标准，是社区公认的函数。\u003c/li\u003e\n\n    \u003cli\u003eany： Deferred的静态方法，要求传入多个Promise对象，最先正常触发的Promise对象，将执行它的resolve回调\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003eexample\u003c/h3\u003e\n\u003cul\u003e\n    \u003cli\u003e\u003ca href=\"state.html\"\u003estate\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"state2.html\"\u003estate2\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"state3.html\"\u003estate3\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"resolve.html\"\u003eresolve\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"resolve2.html\"\u003eresolve2\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"resolve3.html\"\u003eresolve3\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"otherwise.html\"\u003eotherwise\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"otherwise2.html\"\u003eotherwise2\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"then.html\"\u003ethen\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"then2.html\"\u003ethen2\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"then3.html\"\u003ethen2\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"ensure.html\"\u003eensure\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"ensure2.html\"\u003eensure2\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"all.html\"\u003eall\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"any.html\"\u003eany\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"mixin.html\"\u003emixin\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"nextTick.html\"\u003e在当前浏览器下最快的异步操作检测\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubylouvre%2Fmmdeferred","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubylouvre%2Fmmdeferred","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubylouvre%2Fmmdeferred/lists"}