Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача значения из функции в функцию (https://javascript.ru/forum/misc/21633-peredacha-znacheniya-iz-funkcii-v-funkciyu.html)

wine-time 18.09.2011 15:56

Передача значения из функции в функцию
 
Собственно, использую фреймфорк jquery, но вопрос, все же, относится к синтаксису в целом.
Есть 2 функции. Из одной вызываю другую. Хочу получить ответ. Получаю андерфайн. Хотя в функции-возвращателе все в порядке. Что я неправильно пишу?

function first(){
    var info; // переменная, передающаяся параметром
    var something; // произвольная переменная
    something.name = sender(info);
    alert (something.name ); // [B]андерфайн.[/B] но почему?
}

function sender(info){
    ajax ... // передаю на сервер для обработки информацию
    alert (data); // показываю ответ с сервера. показывает нормально.
    return (data); // хочу отдать в вызывавшую функцию
}

melky 18.09.2011 16:09

ajax-запрос синхронный или асинхронный?

ajax-функция в jquery возвратит не ответ сервера, а promise.

wine-time 18.09.2011 16:22

В смысле, не ответ сервера? Нормально она все возвращает =) Просто я не пойму как передать ответ в другую функцию.

Я, проверяю доступность имени. Сейчас ещё модель для общения с бд не написал, поэтому пока отправляю ajax'ом значение из инпута, его же с сервера и отдаю. Если в функции ajax (часть success) алертю ответ - все в порядке. Если пытаюсь return'ом отдать в функцию-вызыватель (в примере - функция first(); ) - то получаю неопределенность.

Пробовал вынести отдельно, вне функций, переменную.
var stuff = {};
В sender(info) писал stuff.name = data;
Но все равно чтение из first() - андерфайн. Или я вас неверно понял?

Nightmare 18.09.2011 16:42

something = function() {}
something.name;

function first(params) {
    var info = params.info;
  
    if (something.name === undefine)
        something.name = sender(info);
   console.log(something.name)
}

Gozar 18.09.2011 17:39

Ты не объявил объект!
var something = {};

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


Часовой пояс GMT +3, время: 05:51.