Добавить тайм-аут для синхронной функции в Typescript - PullRequest
1 голос
/ 19 апреля 2020

Я использую стороннюю библиотеку для тяжелых вычислений. Проблема в том, что он зависает для некоторого ввода. Я хотел бы добавить тайм-аут для синхронной операции. Мой код работает в среде однопоточного узла на GCP (Cloud Fuctions).

const result calculate(x, y);

Это то, что я уже пробовал:

let calculation = new Promise((resolve, reject) => {
   const result = calculate(x, y)
   resolve(result)
 })

let timeout = new Promise((resolve, reject) => {
   let id = setTimeout(() => {
     clearTimeout(id);
     reject()
   }, 5000)
 })

const result = await Promise.race([timeout, calculation])

К сожалению, это не работает, так как метод calculate блокирует поток, поэтому время ожидания не может отклонить обещание. Можно ли сделать синхронный метод тайм-аут после определенного времени?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...