我有一个执行一些异步工作并返回Promise
的函数,并且我想无限期地执行此函数,直到答应了reject
ed。
类似于以下内容:
doSomethingAsync().
.then(doSomethingAsync)
.then(doSomethingAsync)
.then(doSomethingAsync)
// ... until rejection
我做了一些CodePen,所以我可以测试潜在的解决方案:http://codepen.io/JesmoDrazik/pen/pbAovZ?editors=0011
我发现了几个可能的答案,但似乎对我的情况没有任何帮助。
如果有人有解决方案,我会很高兴,因为我什么都找不到!
谢谢。
最佳答案
你可以做
(function loop(){
doSomethingAsync().then(loop);
})();
但是看着你的笔,不清楚拒绝来自何处。如果要在用户单击按钮时停止重复操作,可以在按钮处理中更改状态,然后执行
(function loop(){
doSomethingAsync().then(function(){
if (!stopped) loop();
});
})();