mirror of
				https://github.com/microsoft/playwright.git
				synced 2025-06-26 21:40:17 +00:00 
			
		
		
		
	docs: no floating promises in route handlers (#28745)
Fixes https://github.com/microsoft/playwright/issues/28737
This commit is contained in:
		
							parent
							
								
									8161a7401f
								
							
						
					
					
						commit
						db703a98ea
					
				| @ -44,14 +44,14 @@ Continues route's request with optional overrides. | |||||||
| **Usage** | **Usage** | ||||||
| 
 | 
 | ||||||
| ```js | ```js | ||||||
| await page.route('**/*', (route, request) => { | await page.route('**/*', async (route, request) => { | ||||||
|   // Override headers |   // Override headers | ||||||
|   const headers = { |   const headers = { | ||||||
|     ...request.headers(), |     ...request.headers(), | ||||||
|     foo: 'foo-value', // set "foo" header |     foo: 'foo-value', // set "foo" header | ||||||
|     bar: undefined, // remove "bar" header |     bar: undefined, // remove "bar" header | ||||||
|   }; |   }; | ||||||
|   route.continue({ headers }); |   await route.continue({ headers }); | ||||||
| }); | }); | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| @ -154,17 +154,17 @@ in the end will be aborted by the first registered route. | |||||||
| **Usage** | **Usage** | ||||||
| 
 | 
 | ||||||
| ```js | ```js | ||||||
| await page.route('**/*', route => { | await page.route('**/*', async route => { | ||||||
|   // Runs last. |   // Runs last. | ||||||
|   route.abort(); |   await route.abort(); | ||||||
| }); | }); | ||||||
| await page.route('**/*', route => { | await page.route('**/*', async route => { | ||||||
|   // Runs second. |   // Runs second. | ||||||
|   route.fallback(); |   await route.fallback(); | ||||||
| }); | }); | ||||||
| await page.route('**/*', route => { | await page.route('**/*', async route => { | ||||||
|   // Runs first. |   // Runs first. | ||||||
|   route.fallback(); |   await route.fallback(); | ||||||
| }); | }); | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| @ -220,9 +220,9 @@ GET requests vs POST requests as in the example below. | |||||||
| 
 | 
 | ||||||
| ```js | ```js | ||||||
| // Handle GET requests. | // Handle GET requests. | ||||||
| await page.route('**/*', route => { | await page.route('**/*', async route => { | ||||||
|   if (route.request().method() !== 'GET') { |   if (route.request().method() !== 'GET') { | ||||||
|     route.fallback(); |     await route.fallback(); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   // Handling GET only. |   // Handling GET only. | ||||||
| @ -230,9 +230,9 @@ await page.route('**/*', route => { | |||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| // Handle POST requests. | // Handle POST requests. | ||||||
| await page.route('**/*', route => { | await page.route('**/*', async route => { | ||||||
|   if (route.request().method() !== 'POST') { |   if (route.request().method() !== 'POST') { | ||||||
|     route.fallback(); |     await route.fallback(); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   // Handling POST only. |   // Handling POST only. | ||||||
| @ -330,14 +330,14 @@ One can also modify request while falling back to the subsequent handler, that w | |||||||
| route handler can modify url, method, headers and postData of the request. | route handler can modify url, method, headers and postData of the request. | ||||||
| 
 | 
 | ||||||
| ```js | ```js | ||||||
| await page.route('**/*', (route, request) => { | await page.route('**/*', async (route, request) => { | ||||||
|   // Override headers |   // Override headers | ||||||
|   const headers = { |   const headers = { | ||||||
|     ...request.headers(), |     ...request.headers(), | ||||||
|     foo: 'foo-value', // set "foo" header |     foo: 'foo-value', // set "foo" header | ||||||
|     bar: undefined, // remove "bar" header |     bar: undefined, // remove "bar" header | ||||||
|   }; |   }; | ||||||
|   route.fallback({ headers }); |   await route.fallback({ headers }); | ||||||
| }); | }); | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| @ -554,8 +554,8 @@ Fulfills route's request with given response. | |||||||
| An example of fulfilling all requests with 404 responses: | An example of fulfilling all requests with 404 responses: | ||||||
| 
 | 
 | ||||||
| ```js | ```js | ||||||
| await page.route('**/*', route => { | await page.route('**/*', async route => { | ||||||
|   route.fulfill({ |   await route.fulfill({ | ||||||
|     status: 404, |     status: 404, | ||||||
|     contentType: 'text/plain', |     contentType: 'text/plain', | ||||||
|     body: 'Not Found!' |     body: 'Not Found!' | ||||||
|  | |||||||
							
								
								
									
										32
									
								
								packages/playwright-core/types/types.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								packages/playwright-core/types/types.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -18824,14 +18824,14 @@ export interface Route { | |||||||
|    * **Usage** |    * **Usage** | ||||||
|    * |    * | ||||||
|    * ```js
 |    * ```js
 | ||||||
|    * await page.route('**\/*', (route, request) => { |    * await page.route('**\/*', async (route, request) => { | ||||||
|    *   // Override headers
 |    *   // Override headers
 | ||||||
|    *   const headers = { |    *   const headers = { | ||||||
|    *     ...request.headers(), |    *     ...request.headers(), | ||||||
|    *     foo: 'foo-value', // set "foo" header
 |    *     foo: 'foo-value', // set "foo" header
 | ||||||
|    *     bar: undefined, // remove "bar" header
 |    *     bar: undefined, // remove "bar" header
 | ||||||
|    *   }; |    *   }; | ||||||
|    *   route.continue({ headers }); |    *   await route.continue({ headers }); | ||||||
|    * }); |    * }); | ||||||
|    * ``` |    * ``` | ||||||
|    * |    * | ||||||
| @ -18875,17 +18875,17 @@ export interface Route { | |||||||
|    * **Usage** |    * **Usage** | ||||||
|    * |    * | ||||||
|    * ```js
 |    * ```js
 | ||||||
|    * await page.route('**\/*', route => { |    * await page.route('**\/*', async route => { | ||||||
|    *   // Runs last.
 |    *   // Runs last.
 | ||||||
|    *   route.abort(); |    *   await route.abort(); | ||||||
|    * }); |    * }); | ||||||
|    * await page.route('**\/*', route => { |    * await page.route('**\/*', async route => { | ||||||
|    *   // Runs second.
 |    *   // Runs second.
 | ||||||
|    *   route.fallback(); |    *   await route.fallback(); | ||||||
|    * }); |    * }); | ||||||
|    * await page.route('**\/*', route => { |    * await page.route('**\/*', async route => { | ||||||
|    *   // Runs first.
 |    *   // Runs first.
 | ||||||
|    *   route.fallback(); |    *   await route.fallback(); | ||||||
|    * }); |    * }); | ||||||
|    * ``` |    * ``` | ||||||
|    * |    * | ||||||
| @ -18894,9 +18894,9 @@ export interface Route { | |||||||
|    * |    * | ||||||
|    * ```js
 |    * ```js
 | ||||||
|    * // Handle GET requests.
 |    * // Handle GET requests.
 | ||||||
|    * await page.route('**\/*', route => { |    * await page.route('**\/*', async route => { | ||||||
|    *   if (route.request().method() !== 'GET') { |    *   if (route.request().method() !== 'GET') { | ||||||
|    *     route.fallback(); |    *     await route.fallback(); | ||||||
|    *     return; |    *     return; | ||||||
|    *   } |    *   } | ||||||
|    *   // Handling GET only.
 |    *   // Handling GET only.
 | ||||||
| @ -18904,9 +18904,9 @@ export interface Route { | |||||||
|    * }); |    * }); | ||||||
|    * |    * | ||||||
|    * // Handle POST requests.
 |    * // Handle POST requests.
 | ||||||
|    * await page.route('**\/*', route => { |    * await page.route('**\/*', async route => { | ||||||
|    *   if (route.request().method() !== 'POST') { |    *   if (route.request().method() !== 'POST') { | ||||||
|    *     route.fallback(); |    *     await route.fallback(); | ||||||
|    *     return; |    *     return; | ||||||
|    *   } |    *   } | ||||||
|    *   // Handling POST only.
 |    *   // Handling POST only.
 | ||||||
| @ -18918,14 +18918,14 @@ export interface Route { | |||||||
|    * modify url, method, headers and postData of the request. |    * modify url, method, headers and postData of the request. | ||||||
|    * |    * | ||||||
|    * ```js
 |    * ```js
 | ||||||
|    * await page.route('**\/*', (route, request) => { |    * await page.route('**\/*', async (route, request) => { | ||||||
|    *   // Override headers
 |    *   // Override headers
 | ||||||
|    *   const headers = { |    *   const headers = { | ||||||
|    *     ...request.headers(), |    *     ...request.headers(), | ||||||
|    *     foo: 'foo-value', // set "foo" header
 |    *     foo: 'foo-value', // set "foo" header
 | ||||||
|    *     bar: undefined, // remove "bar" header
 |    *     bar: undefined, // remove "bar" header
 | ||||||
|    *   }; |    *   }; | ||||||
|    *   route.fallback({ headers }); |    *   await route.fallback({ headers }); | ||||||
|    * }); |    * }); | ||||||
|    * ``` |    * ``` | ||||||
|    * |    * | ||||||
| @ -19019,8 +19019,8 @@ export interface Route { | |||||||
|    * An example of fulfilling all requests with 404 responses: |    * An example of fulfilling all requests with 404 responses: | ||||||
|    * |    * | ||||||
|    * ```js
 |    * ```js
 | ||||||
|    * await page.route('**\/*', route => { |    * await page.route('**\/*', async route => { | ||||||
|    *   route.fulfill({ |    *   await route.fulfill({ | ||||||
|    *     status: 404, |    *     status: 404, | ||||||
|    *     contentType: 'text/plain', |    *     contentType: 'text/plain', | ||||||
|    *     body: 'Not Found!' |    *     body: 'Not Found!' | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Yury Semikhatsky
						Yury Semikhatsky