如何使用箭头符号设置nodejs超时?

时间:2018-02-28 22:57:40

标签: node.js unit-testing npm timeout

我正在使用node v9.4.0运行。在我的测试套件中,如何使用箭头符号设置超时。以下

describe('Test Stratum client[callbacks]', () => {
  this.timeout(5000);

  // Test for onConnect getting called
  it('onConnect', (done) => {

导致错误

  _this.timeout(5000);
        ^

TypeError: _this.timeout is not a function

在不改变“describe”行的情况下,我可以用什么语法来设置超时?

1 个答案:

答案 0 :(得分:0)

您可以将其余内容包装在函数中并使用setTimeout

describe('Test Stratum client[callbacks]', () => {
  setTimeout(() => {
    // Test for onConnect getting called
    it('onConnect', (done) => {
      //The rest of your code, etc etc
    });
  //blah blah blah
  }, 5000);

替代方法

Node.js或JavaScript中没有超时。但是,如果您在异步上下文中工作,则可以使用解决方法:

const timeout = ms => new Promise(res => setTimeout(res, ms));
describe('Test Stratum client[callbacks]', async () => {
  await timeout(5000);
  //etc etc

请注意第二行async之前的() => {