【发布时间】:2021-01-20 15:17:03
【问题描述】:
我有一组用于 api 调用的代码。我需要根据 api 调用响应停止每个循环。 期望的结果:每个循环在 resolve 返回 false 后停止; 当前结果:错误,函数返回永远不会解决的承诺;
cy.wrap(array).each(function(code, index, arr) {
return new Cypress.Promise((resolve) => {
cy.intercept('GET', ApiUrl + code).as(`searchApi${code}`);
cy.get('input').type(code); // Sends the api request
cy.wait(`@searchApi${code}`).then(({ request, response }) => {
resolve(response.body.IsAcceptedForCollection);
});
}).finally(result => {
return result; // Result should be bool, false should stop each loop
});
});
我想在等待命令中等待每次迭代如何解决,然后再停止循环或继续下一次迭代。
【问题讨论】:
-
这不是承诺应该起作用的。为了实现这一点,你需要链接你的承诺。
-
@MetallimaX 这就是我想要在这里实现的,问题是第一个承诺永远不会解决
标签: javascript cypress