gpt4 book ai didi

javascript - 带有异步/等待的 super 代理/ super 测试

转载 作者:搜寻专家 更新时间:2023-11-01 00:16:12 26 4
gpt4 key购买 nike

目标是正确设置变量 auth 以供进一步使用,因此我想重构函数 loginUser:

function loginUser(user, request, auth) {
return function(done) {
request
.post('/users/login')
.send(credentials)
.expect(200)
.end(onResponse);

function onResponse(err, res) {
auth.token = res.body.token;
return done();
}
};
}


loginUser(user, request, auth)(function() {
request.get(testUrl)
.set('Authorization', `bearer ${auth.token}`)
.expect(200, done);
});

像这样使用异步/等待(没有回调):

auth = await loginUser(user, request);
request.get(testUrl)
.set('Authorization', `bearer ${auth.token}`)
.expect(200, done);

但我正在努力正确地返回/设置 auth(如果我将 auth 作为参数或返回值传递并不重要)。

我试过的是这样的:

async function loginUser(user, request) {
let auth;
await request
.post('/users/login')
.send(credentials)
.expect(200)
.end(onResponse);

function onResponse(err, res) {
auth.token = res.body.token;
}
return auth;
}

但是 auth 从未正确设置。

最佳答案

不要使用 'end' 语法,那是回调:

const response = await request.post(...)
.expect(200)
const {body: {token}} = response
return token

基本上它应该看起来像同步代码

关于javascript - 带有异步/等待的 super 代理/ super 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51438903/

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