169 похожих чатов

Ребята, у меня будет nodejs процесс, который будет стартовать таски

(асинхронные функции). Как можно будет сделать так, чтобы можно было в любой момент остановить выполнение этой функции ? Стартовать в отдельном процессе не хочется.
Заюзать event ? Для коммуникации с главным воркером ? В главном процессе эта функция будет стартовать без await. так как нам впринципе не нужно ждать окончания выполнения этой функции..... когда закончит выполняться, тогда закончит

13 ответов

19 просмотров

асинхронный функции должны быть в Promise, вы просто делаете reject, в качестве Event емиттера можно использовать https://github.com/primus/eventemitter3

Серж-ИзТанзании Автор вопроса
Серж ИзТанзании
я так понимаю что этот event emitter thread safe ?

вы видите где-то источник неприятностей?

теоретически можно так function runTask(task: (resolve: (value: unknown) => void) => void) { let result: { reject?: (reason?: any) => void } = {} new Promise((resolve, reject) => { result.reject = reject; task(resolve); }) return result } без типов function runTask(task) { let result = {} new Promise((resolve, reject) => { result.reject = reject; task(resolve); }) return result }

Anton Piliugin
а объект тут точно нужен?

хз. ts ругался на неопределённость переменной. Но вроде как присвоение должно проходить синхронно. и синхронная часть task тоже должна выполнится до return runTask

Anton Piliugin
reject, resolve - функции

закончи мысль. а то похоже мы друг друга не понимаем

Anton Piliugin
я вроде закончил

-_- ну тогда и я закончил :)

Demetriy Entropy
теоретически можно так function runTask(task: (res...

Вызов reject снаружи не остановит выполнение таски, даже если она асинхронная, она ведь всё равно выполнится

const promise = () => { let object = {} const p = new Promise((resolve, reject) => { console.log('promise is set') object.abort = reject }) object.promise = p return object } const object = promise() setTimeout(() => { console.log('setTimeout enter, aborting...') object.promise.catch((ex) => console.log(ex)) object.abort('Just abort') }, 1000)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта