@@ -12,28 +12,33 @@ export type MovieDetails = Movie & {
12
12
} ;
13
13
} ;
14
14
15
- function delay ( t : number , v : ( ) => void ) {
15
+ function delay ( t : number ) {
16
16
return new Promise ( function ( resolve ) {
17
- setTimeout ( resolve . bind ( null , v ) , t ) ;
17
+ setTimeout ( resolve , t ) ;
18
18
} ) ;
19
19
}
20
20
21
21
export async function fetchMovies ( ) {
22
22
console . log ( 'fetchMovies' ) ;
23
- return delay ( 200 + Math . floor ( Math . random ( ) * 2000 ) , ( ) =>
24
- movies
25
- . slice ( 0 , 100 )
26
- . map ( ( movie ) => ( { title : movie . title , year : movie . year } ) )
27
- ) as Promise < Movie [ ] > ;
23
+
24
+ await delay ( 200 + Math . floor ( Math . random ( ) * 2000 ) ) ;
25
+
26
+ return movies
27
+ . slice ( 0 , 100 )
28
+ . map ( ( movie ) => ( { title : movie . title , year : movie . year } ) ) as Promise <
29
+ Movie [ ]
30
+ > ;
28
31
}
29
32
30
33
export async function fetchMovie ( title : string ) {
31
34
console . log ( 'fetchMovie' , title ) ;
32
- return delay ( 200 + Math . floor ( Math . random ( ) * 2000 ) , ( ) => {
33
- const result = movies . filter ( ( item ) => item . title === title ) ;
34
- if ( result . length == 0 ) {
35
- throw new Error ( 'Movie not found' ) ;
36
- }
37
- return result [ 0 ] ;
38
- } ) as Promise < MovieDetails > ;
35
+
36
+ await delay ( 200 + Math . floor ( Math . random ( ) * 2000 ) ) ;
37
+
38
+ const result = movies . filter ( ( item ) => item . title === title ) ;
39
+
40
+ if ( result . length == 0 ) {
41
+ throw new Error ( 'Movie not found' ) ;
42
+ }
43
+ return result [ 0 ] as Promise < MovieDetails > ;
39
44
}
0 commit comments