得到错误:解决方法指定过多。指定一个回调*或*返回一个Promise;不是全部
[当我运行函数时,它给我错误:Resolution method is overspecified. Specify a callback *or* return a Promise; not both.
任何人都可以检查我的代码,并帮助解决此问题吗?我在这里放置了完整的代码
it('Get Organizations', async function (done) {
let user_permission = await commonService.getuserPermission(logged_in_user_id,'organizations','findAll');
let api_status = 404;
if(user_permission) {
api_status = 200;
}
let current_token = currentResponse['token'];
old_unique_token = current_token;
chai.request(app)
.post('entities')
.set('Content-Type', 'application/json')
.set('vrc-access-token', current_token)
.send({ "key": "organizations", "operation": "findAll" })
.end(function (err, res) {
currentResponse = res.body;
expect(err).to.be.null;
expect(res).to.have.status(api_status);
done();
});
});
回答如下:这是摩卡咖啡的“问题”。从您的代码中删除done()
。当使用chai.request
中的Promises时,这是多余的。
您正在返回一个Promise,因此呼叫完成是多余的,因为它在错误消息
在旧版本中,如果使用异步方法,则必须使用回调这样
it ('returns async', function(done) { callAsync()
.then(function(result) {
assert.ok(result);
done(); }); })
现在您可以选择返回承诺
it ('returns async', function() { return new Promise(function
(resolve) {
callAsync()
.then(function(result) {
assert.ok(result);
resolve();
}); }); })
发件人:this stack