如何解决setTimeout立即在Cypress.io中执行
在赛普拉斯官方教程中,有以下代码:
it('waits for promises to resolve',() => {
let waited = false
function waitOneSecond() {
// return a promise that resolves after 1 second
return new Cypress.Promise((resolve,reject) => {
setTimeout(() => {
// set waited to true
waited = true
// resolve with 'foo' string
resolve('foo')
},1000)
})
}
cy.wrap(null).then(() => {
// return a promise to cy.then() that
// is awaited until it resolves
return waitOneSecond().then((str) => {
expect(str).to.eq('foo')
expect(waited).to.be.true
})
})
})
有趣的是,如果从return
块中删除了cy.wrap
关键字,则Promise将立即解析,并且waited
被设置为true。为什么在这里拥有return
会有所作为?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。