2014-11-16 2 views
1

Я пишу программу node.js, которая использует библиотеку fibrous для поддержки синхронного управления частью моего кода.синхронный хронометраж в node.js

В вспомогательной функции мне нужно завершить таймаут, но не могу использовать setTimeout(), потому что он не будет работать в контексте с волокнистым.

Это то, что я придумал вместо:

startTimer = new Date() 
startSecondTimer = new Date() 
while startSecondTimer - startTimer < 10000 
    startSecondTimer = new Date() 

Я не очень комфортно с созданием нескольких тысяч Date объектов, чтобы поддержать этот рабочий процесс, но я не уверен, что лучший подход здесь может быть ,

Существует ли более оптимальный способ записи синхронной функции тайм-аута?

+0

Похоже, вы можете легко использовать 'setTimeout' [внутри' wait'] (https://github.com/goodeggs/fibrous#4-waiting-on-a-callback) или просто пойти с [Fiber's 'sleep') (https://github.com/laverdet/node-fibers#sleep)? – Bergi

ответ

1

В C++ есть библиотека для этого node-sleep (резервное копирование на Windows, как ваш цикл while). Узел не предназначен для таких вещей еще больше, вы заметили, что такое операция с процессором.

В качестве подсказки How to create a sleep/delay in nodejs that is Blocking?.

Смежные вопросы