mirror of
				https://gitee.com/coder-xiaomo/leetcode-problemset
				synced 2025-11-04 11:43:12 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<p>请你编写一个函数,它接收一个异步函数 <code>fn</code> 和一个以毫秒为单位的时间 <code>t</code>。它应根据限时函数返回一个有 <strong>限时</strong> 效果的函数。</p>
 | 
						||
 | 
						||
<p>限时函数是与原函数相同的函数,除非它需要 <code>t</code> 毫秒以上的时间来完成。如果出现了这种情况,请你返回 <code>"Time Limit Exceeded"</code> 拒绝这次函数的调用。注意,它应该返回一个字符串拒绝,而不是一个 <code>Error</code> 。</p>
 | 
						||
 | 
						||
<p> </p>
 | 
						||
 | 
						||
<p><b>示例 1:</b></p>
 | 
						||
 | 
						||
<pre>
 | 
						||
<b>输入:</b>
 | 
						||
fn = async (n) => { 
 | 
						||
  await new Promise(res => setTimeout(res, 100)); 
 | 
						||
  return n * n; 
 | 
						||
}
 | 
						||
inputs = [5]
 | 
						||
t = 50
 | 
						||
<b>输出:</b>{"rejected":"Time Limit Exceeded","time":50}
 | 
						||
<b>解释:
 | 
						||
</b>提供的函数设置在 100ms 后执行完成,但是设置的超时时间为 50ms,所以在 t=50ms 时拒绝因为达到了超时时间。
 | 
						||
</pre>
 | 
						||
 | 
						||
<p><b>示例 2:</b></p>
 | 
						||
 | 
						||
<pre>
 | 
						||
<b>输入:</b>
 | 
						||
fn = async (n) => { 
 | 
						||
  await new Promise(res => setTimeout(res, 100)); 
 | 
						||
  return n * n; 
 | 
						||
}
 | 
						||
inputs = [5]
 | 
						||
t = 150
 | 
						||
<b>输出:</b>{"resolved":25,"time":100}
 | 
						||
<b>解释:</b>
 | 
						||
在 t=100ms 时执行 5*5=25 ,没有达到超时时间。
 | 
						||
</pre>
 | 
						||
 | 
						||
<p><b>示例 3:</b></p>
 | 
						||
 | 
						||
<pre>
 | 
						||
<b>输入:</b>
 | 
						||
fn = async (a, b) => { 
 | 
						||
  await new Promise(res => setTimeout(res, 120)); 
 | 
						||
  return a + b; 
 | 
						||
}
 | 
						||
inputs = [5,10]
 | 
						||
t = 150
 | 
						||
<b>输出:</b>{"resolved":15,"time":120}
 | 
						||
<b>解释:
 | 
						||
</b>在 t=120ms 时执行 5+10=15,没有达到超时时间。
 | 
						||
</pre>
 | 
						||
 | 
						||
<p><b>示例 4:</b></p>
 | 
						||
 | 
						||
<pre>
 | 
						||
<b>输入:</b>
 | 
						||
fn = async () => { 
 | 
						||
  throw "Error";
 | 
						||
}
 | 
						||
inputs = []
 | 
						||
t = 1000
 | 
						||
<b>输出:</b>{"rejected":"Error","time":0}
 | 
						||
<b>解释:</b>
 | 
						||
此函数始终丢出 Error</pre>
 | 
						||
 | 
						||
<p> </p>
 | 
						||
 | 
						||
<p><b>提示:</b></p>
 | 
						||
 | 
						||
<ul>
 | 
						||
	<li><code>0 <= inputs.length <= 10</code></li>
 | 
						||
	<li><code>0 <= t <= 1000</code></li>
 | 
						||
	<li><code>fn 返回一个 Promise 对象</code></li>
 | 
						||
</ul>
 |