Задать вопрос
  • Безопасен ли такой код?

    @IPv4
    99691791.jpg
    Ответ написан
    Комментировать
  • Роутер Mikrotik и отваливающийся USB. В чем проблема?

    SmileyK
    @SmileyK
    Коротко не как
    Сделайте support file и направьте в поддержку они отлично откликаются и помогают
    Ответ написан
    Комментировать
  • Роутер Mikrotik и отваливающийся USB. В чем проблема?

    ZombieHamster
    @ZombieHamster
    Попробуйте делать проверки скриптом на доступность usb-девайса и если он недоступен делать power-reset на usb-порту. У меня например пингуется 8.8.8.8 и если пинг не идет значит что то случилось с йотовским usb-модемом, после чего включается подобный скрипт.

    .......
    if (!$DiskNotAviable) do={
    /log error "No USB-device aviable"
    /system routerboard usb power-reset duration=10s
    :delay 20s
    /продолжить бэкап
    }
    Ответ написан
    2 комментария
  • Web-верстка, осуществление скроллинга как?)

    @lnked
    очень не советую ) раздражает
    Ответ написан
    Комментировать
  • [Асинхроность и nodejs] Кто что использует против callback hell и почему?

    MarcusAurelius
    @MarcusAurelius
    автор Impress Application Server для Node.js

    Выше очень правильно заметили, что нужно разбивать методы на логические части поменьше, а не писать простыней, но еще есть проблема в том, что нужно сделать несколько запросов в БД или другим внешним источникам, к файлам, другим серверам, и потом на основе всех фрагментов данных, полученных асинхронно, исполнить бизнес-логику и сформировать ответ. Асинк прекрасно с этим справляется, как в примере ниже.

    
    var dataRequests = [];
    // массив запросов к разным данным (БД, файлы, сетевые вызовы)
    var dataResults  = {};
    // я предпочитаю не использовать массив results, который дает async
    // а вместо этого делать именованные фрагменты данных
    // и писать их в свой хеш
    
    // добавляем один запрос к данным
    dataRequests.push(function(callback) {
    	db.queryRow(
    		'SELECT * FROM TableName1 where Field1=?', [someValue1],
    		function(err, res) {
    			dataResults.firstPiceName = res;
    			callback(err, null);
    		}
    	);
    });
    
    // добавляем второй запрос к данным
    dataRequests.push(function(callback) {
    	db.queryValue(
    		'SELECT count(*) FROM TableName2 where Field2=?',
    		[someValue2],
    		function(err, res) {
    			dataResults.secondPiceName = res;
    			callback(err, null);
    		}
    	);
    });
    
    // вызываем массив запросов асинхронно
    async.series(dataRequests, function(err, results) {
    	// тут делаем бизнес-логику над dataResults в котором у нас есть
    	// все фрагменты данных .firstPiceName и .secondPiceName
    	// и формируем общий результат
    });
    

    А еще рекомендую ставить тег "node.js" на вопросы по ноде.

    Ответ написан
    1 комментарий