Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2015, 12:09
Новичок на форуме
Отправить личное сообщение для vorTex Посмотреть профиль Найти все сообщения от vorTex
 
Регистрация: 01.06.2014
Сообщений: 1

Возвращение результата вложенной функции.
function call_response(id){
	method_call_server(id,function(err,result){
        	//Возвращает результат функции method_call_server
                return result
        })

        // как вернуть результат функции call_response, не используя передачу функции callback в call_response ?
     
}


// Как это выглядит в плане
var result = call_response('id');
console.log(result)


Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2015, 13:05
Интересующийся
Посмотреть профиль Найти все сообщения от pornoborets
 
Регистрация: 07.06.2015
Сообщений: 26

vorTex,
Это невозможно сделать, по всей видимости. Ваш method_call_server -- это асинхронный вызов. В языках, где асинхронность запилена нормально, это делается с помощью futures, и все выхглядит достаточно естественно, например
O := Object clone do(
 foo := method(100)
)

aFuture := O @foo // отсылаем асинхронное сообщение
aFuture print // собщение print ждет до тех пор, пока future не превратиться в результат

# ::: 100


В js асинхронные сообщения захардкорены в реализацию byDesign. Это неуклюжее решение, и для его поддержки существуют неуклюжие костыли. Смотрите в сторону promise и, возможно, yield. Promice -- это суррогат future, отличается он тем, что из него данные приходится выдирать явно.

Последний раз редактировалось pornoborets, 08.06.2015 в 13:08.
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2015, 20:13
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Для асинхронщины использую async/await из ES7, полёт нормальный, код пишется прям как синхронный.
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2015, 09:43
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Safort Посмотреть сообщение
Для асинхронщины использую async/await из ES7, полёт нормальный, код пишется прям как синхронный.
+1
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
присвоение переменной результата функции imediasun1 Элементы интерфейса 3 07.03.2014 17:44
Вместо результата возвращается текст функции? 789 Общие вопросы Javascript 1 31.03.2013 14:33
Возвращение результата из ajax запроса ozzon91 Общие вопросы Javascript 16 01.08.2012 10:12
Возврат результата функции через её параметр x-yuri Оффтопик 11 16.04.2010 11:52
Возвращение значения из функции dba Events/DOM/Window 21 06.10.2009 01:33