当前位置: 首页 > 面试题库 >

为什么会出现“错误:解决方法指定过多”?

酆阳煦
2023-03-14
问题内容

升级后,Mocha甚至无法运行简单的测试,这里是代码

const assert = require('assert');

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

我从这里拿了这段代码

我知道它现在引发异常 Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both.

但是如何使其工作呢?我不明白。我有

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();
   });
})

现在,您可以选择返回诺言

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

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



 类似资料:
  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • 问题内容: 我正在大学学习基础知识,并且希望对Eclipse中的以下错误有所帮助:“对于类型ShopCLI,未定义方法getCost()”& 这是我的代码 问题答案: 方法是在订单类中定义的,而不是在类中定义的。所以你的代码: 应该改为

  • 我实现了以下REST调用: 也是一个提供和使用application/x-protobuf的提供者类: 我的pom。xml看起来像: 我的小部件。原型: 选项java_package=“example”;选项java\u outer\u classname=“WidgetsProtoc”; 对于http://localhost:8080/RESTfulExample/widgets我得到以下错误消

  • 问题内容: 我已经阅读了 为什么在尝试在数据库中加载Blob时会出现java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。我仍然不断收到相同的AbstractMethodError,这让我很生气!任何指导将不胜感激! 错误信息: 问题答案: 问题的原因是软件不兼容(jar文件

  • 问题内容: 前三行工作正常。当我再次尝试将字符串解析为日期时,出现错误。我该如何解决? 错误看起来像这样: 问题答案: 为我工作。在模式末尾使用“ SSSZ”而不是“ SZ”。

  • 除此之外的所有站点都在解析,但是这里有大约10秒的延迟, 发生以下错误: Traceback(最近一次调用last):文件“D:\ Timur \ OpenServer \ domains \ Parser \ Parser . py”,第13行,main()文件“D:\ Timur \ OpenServer \ domains \ Parser \ Parser . py”,第9行,main p