Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2017, 17:05
Новичок на форуме
Отправить личное сообщение для Denwf Посмотреть профиль Найти все сообщения от Denwf
 
Регистрация: 28.03.2016
Сообщений: 2

Можно ли так использовать callback функции?
Здравствуйте!
Прошу помощи опытных.
Изучаю node js и возник вопрос.
В двух словах. Предположим имеется скрипт, который постоянно висит в памяти. И имеются две асинхронные функции.
function a(callback){
  callback();
}

function b(callback){
  a(function(){
    callback();
  });
}

b(function(){
  console.log('end');
});

Это стандартный вариант.

1. Но могу ли я делать вот так?
function a(callback){
  callback();
}

function b(callback){
  a(function(){}); // как будто запускаю в фоне
  callback();
}

b(function(){
  console.log('end');
});

т.е. не дожидаясь выполнения функции А, выходить из функции B? Как будто я запускаю функцию А в "фоне". При этом оговорюсь ещё раз, скрипт не прекращает своей работы после выполнения функции B.
2. Если идёт многократное обращение к функции B, не возникнет каких либо проблем в работе скрипта с функцией А?
Пример достаточно упрощён, всё гораздо глобальнее ) Но с точки зрения опытных, какие подводные камни могут ждать меня при таком подходе?
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2017, 00:15
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Надо смотреть по ситуации. Оба варианта допустимы, какой более подходящий, зависит от задачи. Во втором варианте мы не сможем отследить окончание работы функции а, но зато ловим её начало.
Всё это из предположения, что а и b стартуют некую асинхронщину, по окончании которой отбивают callback. Иначе вопрос лишен смысла.

А вообще, если затеваешь всякие комбинированные конструкции, советую сразу раскурить промисы. Ибо в них сила и мудрость.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2017, 10:20
Новичок на форуме
Отправить личное сообщение для Denwf Посмотреть профиль Найти все сообщения от Denwf
 
Регистрация: 28.03.2016
Сообщений: 2

Спасибо за ответ и совет, суть уловил. Пока справлялся без промисов, но сейчас пишу большой проект и вижу, что промисы просто необходимы.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли вынести обработчики событий в отделные функции Evgeny_Dedov jQuery 1 06.10.2013 17:53
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 09:32
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Можно ли как-то условие match() через переменную использовать? Tend Общие вопросы Javascript 1 16.03.2009 18:52
когда можно использовать for(var k in arr) scuter Общие вопросы Javascript 17 29.08.2008 15:34