diff --git a/test/common/countdown.js b/test/common/countdown.js
index 6a22be0a07eb0b..93bdbbfb16da5d 100644
--- a/test/common/countdown.js
+++ b/test/common/countdown.js
@@ -17,6 +17,7 @@ class Countdown {
     assert(this[kLimit] > 0, 'Countdown expired');
     if (--this[kLimit] === 0)
       this[kCallback]();
+    return this[kLimit];
   }
 
   get remaining() {
diff --git a/test/parallel/test-http-allow-req-after-204-res.js b/test/parallel/test-http-allow-req-after-204-res.js
index cd55a4f17c2b1e..8de53a9e539a66 100644
--- a/test/parallel/test-http-allow-req-after-204-res.js
+++ b/test/parallel/test-http-allow-req-after-204-res.js
@@ -23,12 +23,12 @@
 const common = require('../common');
 const http = require('http');
 const assert = require('assert');
+const Countdown = require('../common/countdown');
 
 // first 204 or 304 works, subsequent anything fails
 const codes = [204, 200];
 
-// Methods don't really matter, but we put in something realistic.
-const methods = ['DELETE', 'DELETE'];
+const countdown = new Countdown(codes.length, () => server.close());
 
 const server = http.createServer(common.mustCall((req, res) => {
   const code = codes.shift();
@@ -39,17 +39,13 @@ const server = http.createServer(common.mustCall((req, res) => {
 }, codes.length));
 
 function nextRequest() {
-  const method = methods.shift();
 
-  const request = http.request({
+  const request = http.get({
     port: server.address().port,
-    method: method,
     path: '/'
   }, common.mustCall((response) => {
     response.on('end', common.mustCall(() => {
-      if (methods.length === 0) {
-        server.close();
-      } else {
+      if (countdown.dec()) {
         // throws error:
         nextRequest();
         // works just fine: