Javascript mocha超时中的简单GET请求

Javascript mocha超时中的简单GET请求,javascript,node.js,rest,https,mocha.js,Javascript,Node.js,Rest,Https,Mocha.js,我有以下代码 const https = require("https"); it("wait for some result", function (done) { this.timeout(15000); const options = { hostname: "httpbin.org", path: "/get", headers: { Authorization:

我有以下代码

const https = require("https");

it("wait for some result", function (done) {
  this.timeout(15000);
  const options = {
    hostname: "httpbin.org",
    path: "/get",
    headers: {
      Authorization: "bearer ",
    },
  };
  https.get(options, (resp) => {
    let data = "";
    // A chunk of data has been recieved.
    resp.on("data", (chunk) => {
      data += chunk;
      console.log(data);
    });
    // The whole response has been received. Print out the result.
    resp.on("end", () => {
      console.log(JSON.parse(data).explanation);
    });

    resp.on("error", (err) => {
      console.log("Error: " + err.message);
    });
    done();
  });
});

这将返回:

  • 应在post上用重定向进行响应: 错误:超过了15000ms的超时时间。确保在此测试中调用了done()回调
  • 由于mocha的原因,我试图使其异步化,这就是我使用回调的原因。我甚至在等待15000而不是默认的2000ms

    此代码正常工作,仅在使用摩卡时失败。 不确定如何解决此问题。感谢您的帮助。 提前感谢。

    尝试在您的请求对象上添加
    .end()

    const req=https.get(选项,(resp)=>{
    让数据=”;
    //已接收到一块数据。
    分别在(“数据”、(块)=>{
    数据+=块;
    控制台日志(数据);
    });
    //已收到全部响应。请打印结果。
    分别在(“结束”、()=>{
    log(JSON.parse(data.explauration);
    完成();
    });
    响应(“错误”、(错误)=>{
    日志(“错误:+err.message”);
    });
    });
    请求结束()
    
    尝试在请求对象上添加
    .end()

    const req=https.get(选项,(resp)=>{
    让数据=”;
    //已接收到一块数据。
    分别在(“数据”、(块)=>{
    数据+=块;
    控制台日志(数据);
    });
    //已收到全部响应。请打印结果。
    分别在(“结束”、()=>{
    log(JSON.parse(data.explauration);
    完成();
    });
    响应(“错误”、(错误)=>{
    日志(“错误:+err.message”);
    });
    });
    请求结束()
    
    你有没有试过把
    完成
    放在
    resp.on(“end”)
    回调中?@yevheni是的,我得到了同样的结果。你有没有试过把
    完成
    放在
    resp.on(“end”)
    回调中?@yevheni是的,我得到同样的结果