如何使用angularjs $q顺序链接承诺?
发布时间:2020-12-17 07:34:12 所属栏目:安全 来源:网络整理
导读:在承诺图书馆Q中,您可以按照以下顺序链接承诺: var items = ['one','two','three'];var chain = Q();items.forEach(function (el) { chain = chain.then(foo(el));});return chain; 但是,以下内容不适用于$q: var items = ['one','three'];var chain = $q(
在承诺图书馆Q中,您可以按照以下顺序链接承诺:
var items = ['one','two','three']; var chain = Q(); items.forEach(function (el) { chain = chain.then(foo(el)); }); return chain; 但是,以下内容不适用于$q: var items = ['one','three']; var chain = $q(); items.forEach(function (el) { chain = chain.then(foo(el)); }); return chain;
只需使用$q.when()函数:
var items = ['one','three']; var chain = $q.when(); items.forEach(function (el) { chain = chain.then(foo(el)); }); return chain; 注意:foo必须是工厂,例如 function setTimeoutPromise(ms) { var defer = $q.defer(); setTimeout(defer.resolve,ms); return defer.promise; } function foo(item,ms) { return function() { return setTimeoutPromise(ms).then(function () { console.log(item); }); }; } var items = ['one','three']; var chain = $q.when(); items.forEach(function (el,i) { chain = chain.then(foo(el,(items.length - i)*1000)); }); return chain; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |