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;
}


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


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

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

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

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
28 янв. 2021, в 09:38
5000 руб./за проект
28 янв. 2021, в 09:32
3000 руб./за проект