NodeJS Синтаксическая идея потока

Я хотел улучшить свои знания NodeJS, поэтому я решил написать дополнение C++. По своему опыту работы с Node я обнаружил, что существующие потоки делают простые процессы с коротким сроком службы очень сложными для запуска в отдельном потоке.

Я не знаю, упустил ли я что-то жизненно важное, что усложнило бы его, но у меня было приложение, в котором я хотел обрезать несколько сотен изображений на сервере (относительно короткий процесс, но все еще достаточно длинный, чтобы заблокировать цикл событий и вызвать проблемы для входящие запросы). Для этого я использовал пакет child-process, но мне все равно пришлось создать отдельный файл, содержащий код обрезки и выяснить, как сериализовать изображения и отправить их в виде сообщений.

Я подумал, что попытался бы реализовать пакет узлов, который содержал бы объект потока, чтобы позволить C#-шить поток с обещающим синтаксисом.

function doWork(arg) {
    // something that takes awhile
}

function TenSecondProcess(arg1, arg2) {
    return new Thread(() => {
        return doWork(arg1) + doWork(arg2);
    }
}

function main() {
    var a = 25;
    var b = 21;
    TenSecondProcess(a, b).then((result) => {
        console.log(result);
    }.catch((err) => {
        console.error(err);
    }
}

И я также рассматривал возможность реализации функции для объекта, который блокируется до тех пор, пока значение не будет вычислено для потоков вложенности или для кода javascript, не использующего парадигму обратного вызова / обещания.

var thread = TenSecondProcess(a, b);
// other work
var result = thread.result();

Мой опыт в этой области ограничен, поэтому я публикую его для отзывов о полезности этой идеи и предложений по изменениям.

Заранее спасибо.

0 ответов

Другие вопросы по тегам