34 lines
		
	
	
		
			985 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			985 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = pTimeout; | ||
|  | var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol; | ||
|  | var Symbol = global['jest-symbol-do-not-touch'] || global.Symbol; | ||
|  | var Promise = global[Symbol.for('jest-native-promise')] || global.Promise; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. | ||
|  |  * | ||
|  |  * This source code is licensed under the MIT license found in the | ||
|  |  * LICENSE file in the root directory of this source tree. | ||
|  |  */ | ||
|  | // A specialized version of `p-timeout` that does not touch globals.
 | ||
|  | // It does not throw on timeout.
 | ||
|  | function pTimeout(promise, ms, clearTimeout, setTimeout, onTimeout) { | ||
|  |   return new Promise((resolve, reject) => { | ||
|  |     const timer = setTimeout(() => resolve(onTimeout()), ms); | ||
|  |     promise.then( | ||
|  |       val => { | ||
|  |         clearTimeout(timer); | ||
|  |         resolve(val); | ||
|  |       }, | ||
|  |       err => { | ||
|  |         clearTimeout(timer); | ||
|  |         reject(err); | ||
|  |       } | ||
|  |     ); | ||
|  |   }); | ||
|  | } |