异步链式调用与超时及优先级
JavaScript
Hard
promises
任务 «异步链式调用与超时及优先级»
实现函数 asyncChain(tasks, timeout),该函数接收一个任务数组(返回 Promise 的函数)和以毫秒为单位的超时时间。该函数必须按顺序执行任务,但如果某个任务的执行时间超过指定的超时时间,则可以跳过该任务。如果任务未能在超时时间内完成,该任务应被拒绝,而任务链应继续执行下一个任务。成功完成的任务的结果会被收集到一个数组中并返回。如果所有任务都被跳过,则返回一个空数组。请注意错误处理:如果 Promise 以错误结束,这也被视为任务被跳过。
输入格式
第一行:数字 n — 任务数量。接下来 n 行,每行包含两个整数:delay 和 result。delay — 解决 Promise 之前的延迟(毫秒),result — Promise 返回的值。最后一行:timeout — 单个任务的最大执行时间(毫秒)。
输出格式
成功完成的任务结果数组(数字),以空格分隔。如果数组为空,则输出 'none'。
示例
示例 1
输入
2
300 10
200 20
250
输出
20
示例 2
输入
1
500 100
400
输出
none
示例 3
输入
Integer
5
push 10
push 20
peek
pop
pop
输出
none
main.js