Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (6)
  • Как на nighmarejs обойти несколько страниц и сохранить их в pdf?

    @trubel
    ошибка в том что вы забыли что nodejs асинхронен и nightmare не ждет пока файл сохранится, сразу переходит на другой адрес, а с таким кодом и правда нетрудно сойти с ума :)
    на похожей задаче я использовал async/await:
    var Nightmare = require('nightmare');
    var browser = Nightmare();
    
    async function login() {
    	// заходим
    }
    
    async function getLinks() {
    	var result = [];
    	// вытаскиваем ссылки
    	await browser
    		.goto('url')
    		...
    		.then(function(data){
    			result = data.slice();
    		});
    	return result
    }
    
    async function savePDF(url) {
    	// сохраняем
    	await browser
    		.goto(url)
    		.pdf(...);
    }
    
    async function run() {
    	await login();
    	var links = await getLinks();
    	for (var i=0; i<links .length: i++) {
    		await savePDF(links[i]);
    	}
    }


    await дает сигнал движку чтобы он ждал окончания выполнения и не двигался дальше.
    async указывает что функция асинхронная, и только функции с async могут использовать await
    Ответ написан
    3 комментария
  • Для чего нужен singleton?

    @trubel
    Посмотрите вебинар по паттернам на Хеклете, где-то с 1:20 начинается обсуждение синглатона, к концу видео подводятся итоги.
    Если кратко, синглатон — замена глобальной переменной, чтобы таскать с собой контекст приложения, его использование несет определенные ограничения. Лучше для контекста приложения использовать dependency container.
    Вообще рекомендую посмотреть видео целиком, четко расставляет по полочкам про паттерны.
    Ответ написан
    Комментировать
  • Как на яндекс картах получить временную зону точки?

    @trubel
    Есть бесплатный API TimeZoneDB, даже можно скачать БД и сделать свою реализацию
    Ответ написан
    Комментировать