mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-06 20:46:50 +08:00
* [p-event] introduce typings * [p-event] extend tests * [p-all] add missing overload for direct filtering
62 lines
1.4 KiB
TypeScript
62 lines
1.4 KiB
TypeScript
/// <reference types="node" />
|
|
|
|
import pEvent = require('p-event');
|
|
import * as events from 'events';
|
|
import * as fs from 'fs';
|
|
|
|
class MyEmitter extends events.EventEmitter {
|
|
}
|
|
|
|
class MyDomEmitter implements EventTarget {
|
|
addEventListener(type: 'foo', listener?: (event: Event) => void): void {
|
|
}
|
|
|
|
dispatchEvent(event: Event): boolean {
|
|
return false;
|
|
}
|
|
|
|
removeEventListener(type: 'foo', listener?: (event: Event) => void): void {
|
|
}
|
|
}
|
|
|
|
pEvent(new MyEmitter(), 'finish')
|
|
.then(result => {
|
|
console.log(result);
|
|
})
|
|
.catch(error => {
|
|
console.error(error);
|
|
});
|
|
|
|
pEvent<string>(new MyEmitter(), 'finish').then(result => {
|
|
const str: string = result;
|
|
});
|
|
|
|
pEvent(new MyDomEmitter(), 'finish').then(result => {
|
|
const e: Event | undefined = result;
|
|
});
|
|
|
|
pEvent(document, 'DOMContentLoaded').then(() => {
|
|
console.log('😎');
|
|
});
|
|
|
|
pEvent<string>(new MyEmitter(), 'finish', {multiArgs: true}).then(result => {
|
|
const strArr: string[] = result;
|
|
});
|
|
|
|
pEvent<number>(new MyEmitter(), '🦄', value => value > 3).then(result => {
|
|
const num: number = result;
|
|
});
|
|
|
|
async function getOpenReadStream(file: string) {
|
|
const stream = fs.createReadStream(file);
|
|
await pEvent(stream, 'open');
|
|
return stream;
|
|
}
|
|
|
|
getOpenReadStream('unicorn.txt')
|
|
.then(stream => {
|
|
console.log('Is readable:', stream.readable);
|
|
stream.pipe(process.stdout);
|
|
})
|
|
.catch(console.error);
|