26 lines
464 B
JavaScript
26 lines
464 B
JavaScript
![]() |
declare interface File {
|
||
|
readLine(): Promise<string>;
|
||
|
close(): void;
|
||
|
EOF: boolean;
|
||
|
}
|
||
|
|
||
|
declare function fileOpen(path: string): Promise<File>;
|
||
|
|
||
|
async function* readLines(path) {
|
||
|
let file: File = await fileOpen(path);
|
||
|
|
||
|
try {
|
||
|
while (!file.EOF) {
|
||
|
yield await file.readLine();
|
||
|
}
|
||
|
} finally {
|
||
|
file.close();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async function f() {
|
||
|
for await (const line of readLines("/path/to/file")) {
|
||
|
(line: void); // error: string ~> void
|
||
|
}
|
||
|
}
|