gpt4 book ai didi

javascript - 如何通过函数返回来自 cy.request 的响应

转载 作者:行者123 更新时间:2023-12-02 02:01:51 24 4
gpt4 key购买 nike

我正在尝试使用以下函数传递 API 请求的结果:

Add(someName)
{
cy.request ({
method: 'POST',
url: someURL,
body: {
name: someName
}
}).then(function(response){
return response
})
}

然而,当我尝试调用此函数时,它没有给我响应的内容(它给我未定义)。我认为这可能与异步性(如果这是一个词)或对象的范围有关,因此尝试为响应添加别名或在函数之外定义一个对象(然后将响应分配给该对象),而不祝你好运。

最佳答案

您只需要在 cy.request() 调用上返回一个 return

Add(someName) {
return cy.request ({...})
.then(function(response) {
return response.body // maps the response to it's body
}) // so return value of function is response.body
}

返回值类型是一个 Chainer(与所有 Cypress 命令的类型相同),因此您必须使用 .then()

myPO.Add('myName').then(body => ...

cy.request() 之后不需要 .then()

如果你想要完整的回复,

Add(someName) {
return cy.request ({...}) // don't need a .then() after this
// to return full response
}

如何等待结果

如果您想等待结果,请使用 Cypress.Promise,如图所示 here

Add(someName) {
return new Cypress.Promise((resolve, reject) => {
cy.request ({...})
.then(response => resolve(response))
})
}

正在等待

const response = await myPO.Add('myName')

关于javascript - 如何通过函数返回来自 cy.request 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68936669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com