小编Mik*_*key的帖子

Cypress - “失败是因为你混淆了异步和同步代码”

我有一个可以访问 API 的 Cypress 测试。返回一个项目列表,我希望它基本上进行轮询,直到我得到正确的原因(最多 30 次)。

返回的示例是

{
   "items":[
      {
         "reason":"incorrect"
      },
      {
         "reason":"correct"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我有以下函数,如果返回正确的原因,它会轮询并返回响应。否则会抛出错误

function pollStatusReason(id, reason, attempts = 0) {
    const url = `http://someurl/${id}`;

    if (attempts > 30) throw `Too many attempts to get reason: ${reason}`;

    return cy.request({
        method: 'GET',
        url: url,
    }).then((response) => {
        if (response.status != 200) {
            pollStatusReason(id, reason, attempts + 1);
        } else {
            const items = response.body.items;
            for (let i = 0; i < items.length; i++) {
                if (items[i].reason …
Run Code Online (Sandbox Code Playgroud)

javascript recursion for-loop cypress

-1
推荐指数
1
解决办法
106
查看次数

标签 统计

cypress ×1

for-loop ×1

javascript ×1

recursion ×1