Создаем на Github репозиторий cwp-09, клонируем его, открываем в IDE
Создаем файл package.json:
{
"name": "cwp-09",
"author": "Your name"
}
С помощью терминала устанавливаем Bluebird npm i bluebird
Проверим что зависимость записалась в наш package.json:
{
"name": "cwp-09",
"author": "Your name",
"dependencies": {
"bluebird": "^3.x.x"
}
}
Теперь мы можем импортировать библиотеку в наш код - const Promise = require('bluebird');
Также нам понадобиться библиотека для отправки HTTP-запросов - npm i axios
Создадим скрипт
population.js, который будет использовать в своей работе
Population API. Далее реализуем операции которые будут выполняться последовательно.
1. Загрузим информацию о населении Беларуси в 2017 году. Просуммируем людей всех возрастов и выведем общее количество населения.
2. С помощью метода Promise.all параллельно загрузим информацию о населении Канады, Германии и Франции за 2017 год. Выведем отдельно суммарное количество женщин и мужчин.
3. С помощью метода Promise.any параллельно загрузим информацию о населении Беларуси за 2014 и 2015 года. Выведем на консоль год и количество женщин и мужчин в возрасте 25 лет.
4. С помощью метода Promise.props параллельно загрузим статистику смертности для Греции и Турции. Выведем на консоль страну и возраст наибольшей смертности.
5. Получим список стран и затем с помощью метода Promise.map параллельно загрузим информацию о населении по первым 5 странам за 2007 год. Выведем на консоль страны и общее население.
6. Если на каком-то этапе произошла ошибка, то мы выведем информацию о ней на консоль, а скрипт продолжит выполнение
Создадим скрипт dirs.js
1. Прочитаем про Promise.promisify и Promise.promisifyAll. Применим второй метод к модулю fs
2. Объявим массив
dirs куда запишем 10 имен несуществующих директорий, которые нужно создать. Можно воспользоваться следующим массивом:
const dirs = [
'dir-1/dir-1-1',
'dir-1/dir-1-2',
'dir-1/dir-1-2/dir-1-2-1',
'dir-2/dir-2-1/dir-2-1-1',
'dir-2/dir-2-2/dir-2-2-1',
'dir-2/dir-2-1/dir-2-2-2/dir-2-2-2-1',
'dir-3/dir-3-1',
'dir-3',
'dir-3/dir-3-2/dir-3-2-1',
'dir-3/dir-3-3/dir-3-3-1'
];
3. С помощью методов Promise.mapSeries и fs.mkdirAsync создадим структуру директорий в которой все пути в объявленном массиве существуют.
4*. Подумайте как можно ускорить процесс создания директорий
Задания со звездочкой предназначены для персонального роста и необязательны к показу при защите лабораторной работы
Синхронизируем локальный репозиторий с удаленным (сделаем push на Github)