| 
									
										
										
										
											2019-05-23 15:18:06 +08:00
										 |  |  | // import() doesn't care about whether a module is an async module or not
 | 
					
						
							| 
									
										
										
										
											2019-05-23 02:11:16 +08:00
										 |  |  | const UserApi = import("./UserApi.js"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const CreateUserAction = async name => { | 
					
						
							| 
									
										
										
										
											2019-05-23 15:18:06 +08:00
										 |  |  | 	// These are normal awaits, because they are in an async function
 | 
					
						
							| 
									
										
										
										
											2019-05-23 02:11:16 +08:00
										 |  |  | 	const { createUser } = await UserApi; | 
					
						
							|  |  |  | 	await createUser(name); | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2019-05-23 15:18:06 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | // You can place import() where you like
 | 
					
						
							|  |  |  | // Placing it at top-level will start loading and evaluating on
 | 
					
						
							|  |  |  | //   module evaluation.
 | 
					
						
							|  |  |  | //   see CreateUserAction above
 | 
					
						
							|  |  |  | //   Here: Connecting to the DB starts when the application starts
 | 
					
						
							|  |  |  | // Placing it inside of an (async) function will start loading
 | 
					
						
							|  |  |  | //   and evaluating when the function is called for the first time
 | 
					
						
							|  |  |  | //   which basically makes it lazy-loaded.
 | 
					
						
							|  |  |  | //   see AlternativeCreateUserAction below
 | 
					
						
							|  |  |  | //   Here: Connecting to the DB starts when AlternativeCreateUserAction
 | 
					
						
							|  |  |  | //         is called
 | 
					
						
							|  |  |  | export const AlternativeCreateUserAction = async name => { | 
					
						
							|  |  |  | 	const { createUser } = await import("./UserApi.js"); | 
					
						
							|  |  |  | 	await createUser(name); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Note: Using await import() at top-level doesn't make much sense
 | 
					
						
							| 
									
										
										
										
											2020-03-13 00:51:26 +08:00
										 |  |  | //       except in rare cases. It will import modules sequentially.
 |