我正在使用Typescript进行Cypress测试。
这是我的职责
createOrder: (body) => {
let order: { id: any }
cy.request({
method: 'POST',
url: '/order',
body: body
}).then(response => {
let res = response.body.Order
order.id = res.id
})
return order
},
执行时,我收到错误:第一个月
我在这里遗漏了什么?我似乎已经声明了id
。
2条答案
按热度按时间q43xntqr1#
let order: { id: any }
为order
定义了一个类型,但没有给予它赋值。尝试用
let order: {id: any} = {id: ""}
初始化它,避免使用any
(使用any
会禁用变量/属性的类型检查,并使您陷入此类问题)4nkexdtk2#
除了主要问题之外,请注意您的方法永远不会从响应返回值。
POST请求是异步的,但是方法的返回是同步的,它总是返回原始的空值。
要解决这个问题,您必须返回请求本身以及
.then()
回调中的id
。一旦代码中有了异步部分,它之后的所有内容也必须异步处理,因此这就是您使用方法的方式