作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是使用 Promise 的新手,并且为了解决这个问题而绞尽脑汁。我想运行一个脚本,直到在 Protractor 中使用以下代码满足条件,但它不起作用。如何解决这个问题?
let counter = 30;
for (let i = 0; i < counter; i++) {
browser.executeScript(somescript).then((value) => {
//console.log(value);
if (value > 0)
//do some stuff
}
else {
return; //exit for loop --not working
//or
i=counter;// to exit if i and counter value same
}
})
}
最佳答案
我有这个 limitedRetry
代码,这似乎是您需要的代码
limitedRetry = (cont, fn) => fn().catch(err => cont > 0 ? limitedRetry(cont - 1, fn) : Promise.reject(err));
你的用途是
limitedRetry(30, function() {
browser.executeScript(somescript).then((value) => {
if (value > 0) {
// do some stuff
return 'this will be the resolved value of the promise';
} else {
return Promise.reject('try again');
}
});
})
.then(v => console.log(v))
.catch(err => console.log(err));
关于javascript - 如何在for循环中循环 promise 并在满足条件时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45366533/
我是一名优秀的程序员,十分优秀!