rus_anonym
@rus_anonym
Голодный студент :с

Можно ли сделать функцию, которая вернёт первую выполненную команду?

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

Например:
function firstFunction(number) {
return (number != 1) ? n * firstFunction(number  - 1) : 1;
}

function secondFunction(number) {
let total = 1;
for (i = 0; i < number; i++){
    total = total * (number- i);
}
return total;
}


Можно ли сделать функцию которая будет вызывать обе эти функции, и возвращать полученное значение той функции, которая выполнится быстрее?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
приходит фотография от пользователя и скрипт её обрабатывает, есть 2 функции для обработки, и мне надо сделать так, чтобы пользователю отправлялся результат той функции, которая выполнится быстрее, поскольку в некоторых случаях быстрее выполняется 1 функция, а в некоторых вторая


Лучше выявить признаки, чтобы заранее понимать, какой вариант быстрее.

Условно распараллелить выполнение можно в web worker'ах: запускать два, ждать сообщений о готовности, приняв первое сообщение, отдать результат пользователю.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
В пределах сессии (веб-приложения или одной страницы, если не используются фреймы, хотя для хромиум это вопрос исследования) javascript выполняется в пределах одного процесса, это значит не получится запустить две функции в разных потоках чтобы они выполнялись одновременно... только последовательно.

Попробуйте web-workers, они по уму могут работать в отдельном процессе, т.е. запускаете два воркера в каждому своя функция и ждете кто первый вернет результат.... Но учтите, даже в случае многопоточного исполнения никаких гарантий что повторный вызов даст тот же результат по скорости.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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