gpt4 book ai didi

node.js - 为什么我得到 "Error: Resolution method is overspecified"?

转载 作者:IT老高 更新时间:2023-10-28 22:01:16 30 4
gpt4 key购买 nike

升级后Mocha连简单的测试都跑不了这里是代码

const assert = require('assert');

it('should complete this test', function (done) {
return new Promise(function (resolve) {
assert.ok(true);
resolve();
})
.then(done);
});

我从 here 获取此代码

我知道它现在抛出异常 错误:解决方法被过度指定。指定回调 * 或 * 返回一个 Promise;不是两者都有。

但是如何让它工作呢?我不明白。我有

node -v 6.9.4

mocha -v 3.2.0

如何以新的正确格式运行这段代码?

最佳答案

放下
.then(done); 并将 function(done) 替换为 function()

你正在返回一个 Promise,所以调用 done 是多余的,正如它在错误消息中所说的那样

在旧版本中,您必须使用回调来处理这样的异步方法

it ('returns async', function(done) {
callAsync()
.then(function(result) {
assert.ok(result);
done();
});
})

现在您可以选择返回 Promise

it ('returns async', function() {
return new Promise(function (resolve) {
callAsync()
.then(function(result) {
assert.ok(result);
resolve();
});
});
})

但同时使用两者会产生误导(例如参见 https://github.com/mochajs/mocha/issues/2407 )

关于node.js - 为什么我得到 "Error: Resolution method is overspecified"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761683/

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