Показать сообщение отдельно
  #8 (permalink)  
Старый 22.07.2017, 01:15
Интересующийся
Отправить личное сообщение для -FIXER- Посмотреть профиль Найти все сообщения от -FIXER-
 
Регистрация: 16.04.2017
Сообщений: 21

Сообщение от Audaxviator Посмотреть сообщение
Я извиняюсь, а что делает этот модуль? Теоретически можно предположить, что он записывает в файл пустую строку (попросту, создаёт файл price.txt). Но тогда он должен выглядеть как-то так:
const fs = require('fs');
var parse = function (){
    fs.writeFileSync('./data/prices.txt', '', err => console.error(err));
};
module.exports = parse;


А лучше так:
var fs = require('fs');
module.exports = function() {
  fs.writeFileSync('./data/prices.txt', '', err => console.error(err));
};

И вызываться так:
require('./parse')(); // тут должно быть имя файла с модулем - я не знаю, как он называется

И поскольку возвращать ему нечего (да хоть бы и было чего), то и в переменную - var a = - его передавать незачем - так его и засунуть в массив промиса.
Я модуль постарался максимально ужать, просто для примера. В аргументе "csrf" я передаю функцию, которая посреди выполнения кода забирает одну переменную и передаёт её в основной скрипт. С созданным файлом в последствии происходят действия, с некоторого ресурса пост запросами парсятся цены и т.д.
Просто 100 строк кода скидывать было бы не совсем разумным, на мой взгляд.
Вот как в приведённый мной пример можно интегрировать промисы?

Или, если можно, просто приведите холостой пример, в котором выполняется некоторый модуль(пусть это будет таймаут 3 секунды например), и после выполнения из модуля поступает информация в основной шаблон, что модуль выполнился. Причём чтобы сам промис и ".then" объявлялись в основном шаблоне. Возможно такое?
var a = require('./a');
var b = require('./b');
var c = require('./c');

Promise.all([a.run(), b.run(), c.run()]).then(function(arrayResults) {
  //тут что-то делаем
});

Вот если можно в пример выше добавьте отдельно короткий код любого из модулей а b или c, который возвращает промис.

Последний раз редактировалось -FIXER-, 22.07.2017 в 01:34.
Ответить с цитированием