Я изучаю nodejs, и одна вещь, которая продолжает пугать мой разум, - это асинхронное программирование, на котором построен nodejs. Может быть, я делаю что-то неправильно, но, несмотря на все мои исследования, я не могу окунуться в то, как я должен адаптироваться к нему, исходя из синхронного программирования. Я был бы очень признателен, если бы кто-то дал мне простой пример асинхронной работы, основанный на приведенной ниже структуре, если вы хотите вызвать func2 из любого места.Как обрабатывать функции async в nodejs
function1(){
var obj = function2();
console.log(obj); //"undefined".
}
function2(){
//do stuff with DB and get obj
console.log(obj); //logs obj.
return obj;
}
Проблема, которую я наткнулся на то, что OBJ гравюр как неопределенные в func1, в то время как func2 не имеет никаких проблем с ним. Когда я вложил функции друг в друга, это сработало, и я верил, что из-за асинхронного характера nodejs он начал регистрироваться в func1 до того, как func2 был закончен. Неужели я ошибаюсь в своих предположениях?
В чем я могу бороться в приведенном выше примере, как бы я закодировал функции, а не вставлял их друг в друга, поэтому я могу сразу вызвать func2 из нескольких разных функций. Я просмотрел обратные вызовы, но не мог понять примеры, приведенные в различных ответах, с функцией внутри функции.
Это действительно вопрос JavaScript, а не только для nodejs. – OrangeDog
Действительно? Я думал, что только nodejs был асинхронным, а не JS целым. Конечно, я работал только с JS в HTML, может быть, это то, откуда приходит мое замешательство. – Araklaj
AJAX - * Асинхронный * JavaScript и XML – OrangeDog