最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

得到错误:解决方法指定过多。指定一个回调*或*返回一个Promise;不是全部

运维笔记admin24浏览0评论

得到错误:解决方法指定过多。指定一个回调*或*返回一个Promise;不是全部

得到错误:解决方法指定过多。指定一个回调*或*返回一个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

发布评论

评论列表(0)

  1. 暂无评论