GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — TypeScriptSamples/node/src/APIClient.ts at master · coopercoder/TypeScriptSamples Expand file tree/ Copy pathAPIClient.tsMore file actions 39 lines (33 loc) · 1.19 KB / Copy pathAPIClient.tsFile metadata and controls39 lines (33 loc) · 1.19 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 /** * API client example. */ import { IncomingMessage, request } from 'http'; const handleResponse = (resolve: (data: string) => void, reject: (data: Error) => void, response: IncomingMessage): void => { let chunk = ''; const { statusCode } = response; if (statusCode !== 200) { reject(new Error('Server error')); } response.setEncoding('utf8') .on('error', reject) .on('uncaughtException', reject) .on('data', (data: string) => chunk += data) .on('end', () => { resolve(chunk); }); }; const ping = async (): Promise<string> => new Promise((resolve: (data: string) => void, reject: (data: Error) => void) => { const post = request({ path: '/', port: 8080, method: 'GET', hostname: 'localhost', headers: { 'Content-Type': 'text/plain' } }); const curriedHandleResponse = ((response: IncomingMessage) => { handleResponse(resolve, reject, response); }); post.write('ping'); post.on('response', curriedHandleResponse); post.on('error', () => { reject(new Error('Request error')); }); post.end(); }); ping().then(console.log).catch(console.error); |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |