untitled notebook

node v8.17.0
version: 1.0.0
endpointsharetweet
const pify = require("util").promisify; const http = require("http"); const hostname = "jsonplaceholder.typicode.com"; const failEndpoint = "/todos/2"; const goodEndpoint = "/todos/4"; let options = { method: "get", path: `${failEndpoint}`, hostname }; async function ping(tries = 0) { return new Promise((res) => { const req = http.request(options, async (response) => { let body = new Buffer(0); response.on("data", (chunk) => { body = Buffer.concat([body, chunk]); }) const on = pify(response.on.bind(response)); await on("end"); let decoded = new Buffer(body, 'base64').toString('utf8') let json = JSON.parse(decoded); if (json.completed) { return res("all good"); } if (tries < 3) { console.log(`retrying ${tries + 1} time`); return res(ping(tries + 1)); } return res("failed"); }) req.on('error', (e) => { console.error(`problem with request: ${e.message}`); }); // write data to request body req.end(); }) } const status = await ping(); "status: " + status
Loading…

no comments

    sign in to comment