Я должен динамично воссоздать PDF, а не сохранить его или в базе данных или в файловой системе?

Я попробовал ваш код, но получил TypeError: reject is not a function. Это потому, что вы передаете tryUntilThree(x+1), который выполняет функцию, прежде чем передать ее в nonPromiseCallback.

Итак, я придумал этот код, чтобы попытаться выполнить то, что вы хотите.

let res;    // used for keeping a reference to the original resolve
function nonPromiseCallback(x, resolve, reject){
    if(x < 3){
      reject(x + 1);
    }
    else{
      resolve(x);
    }
}

function tryUntilThree(x){
    return new Promise((resolve) => {
        if(!res){
            res = resolve;
        }
        nonPromiseCallback(x, res, tryUntilThree);
    });
}

tryUntilThree(1)
.then(res => console.log("RESULT:", res));

let res;, эта переменная используется для хранения ссылки на исходное разрешение, так что .then выполняется.

6
задан Joris Schellekens 27 October 2017 в 18:25
поделиться

8 ответов

Я сохранил бы его прочь по двум причинам

1) Если Вы когда-нибудь изменяетесь, как Вы генерируете PDF, Вы, вероятно, не хотите, чтобы исторические объекты изменились. Если Вы генерируете их каждый раз, или они изменятся, или необходимо сохранить код совместимости для генерации записей "старого стиля"

2) Дисковое пространство является дешевым. Терпение пользователя не. Если у Вас действительно не требуют устройства хранения данных, или выход из устройства хранения данных более труден, чем генерация PDF, добр к Вашим пользователям и хранит его прочь.

Очевидно, при создании тысяч из них час до редкого набора данных у Вас не может быть устройства хранения данных. Но если бы у Вас есть пространство, я проголосовал бы за "использование за него"

3
ответ дан 8 December 2019 в 17:29
поделиться

Если бы это в архивных целях, я определенно сохранил бы PDF, потому что в будущем, Ваш сценарий поколения PDF может измениться, и затем буква не будет точно тем же как, что было первоначально отправлено. Клиент будет ожидать, что это будет точно тем же.

Не имеет значения, какой подход выше, иногда лучше пойти для того, какой подход более безопасен.

9
ответ дан 8 December 2019 в 17:29
поделиться

Существует ли причина судебной экспертизы, почему необходимо поддержать записи букв, отправленных клиентам? Если Вы собираетесь повторно создать на лету, как Вы знаете, что будущие изменения кода не перепишут букву (или, по крайней мере, клиент может привести, что аргумент в суде, если информация используется в судебном процессе)...

2
ответ дан 8 December 2019 в 17:29
поделиться

Немного вещей рассмотреть, PDF, генерируют на основе данных, поскольку это существовало в какой-то момент вовремя. НАПРИМЕР, счет на основе данных с предшествующего месяца?

Если так, Вы использовали бы тот же шаблон каждый месяц для генерации этой буквы? Что происходит, если/когда изменения формата буквы при регенерации на лету его, больше не являются тем же, которое было отправлено им. Действительно ли хранение является потоком PDF в базу данных возможность?

Я предполагаю то, что я достигаю, Вам нужно точное представление того, что было отправлено пользователю, или это гибко?

0
ответ дан 8 December 2019 в 17:29
поделиться

Если Вы используете ASP.NET, почему не кэшируют PDF. Ваш кэш может быть сохранен в базе данных, если Вам нравится или оставленный в памяти столько, сколько Вам, возможно, понадобится он сначала. Библиотека предприятия реализует это для Вас в блоке программы кэширования, и она замечательно проста в использовании. Если Вы кэшируете объект, создаете устройство хранения данных в базе данных с помощью блока и затем загружаете его при необходимости в нем, Вы не должны будете волноваться о воссоздании его.

0
ответ дан 8 December 2019 в 17:29
поделиться

Вопрос того, генерировать ли pdfs динамично или сохранить их статически, больше походит на вопрос закона, чем вопрос программирования.

Если у Вас нет доступа к юрисконсульту, который может дать представление об этом затем, будет намного более безопасным допустить ошибку на стороне осторожности и сохранить их статически.

0
ответ дан 8 December 2019 в 17:29
поделиться

Я склонен сказать, что "это зависит".

Когда один документ много раз требуют, это может быть сохранение, если Вы составляете его по первому запросу и получаете его подпоследовательно.

OTOH, если большинство запросов на документ имеет справедливый однажды тип и процесс создания, не съедает большую часть Вашей мощности сервера, на лету будет иметь преимущество.

0
ответ дан 8 December 2019 в 17:29
поделиться

Пока документ в формате PDF имеет постоянный характер (не только, документ работы, но и что-то официальное подписался и отправил где-то в другом месте в компании или за пределами компании), у Вас должны быть копия этого файла PDF в Вашей сети и ссылка на этот файл в Вашей базе данных.

Вы не можете полагаться на доступные данные для репродуцирования того же самого документа в другое время главным образом потому что:

  1. Данные могут быть изменены (да! предположите, что буква улажена, чтобы быть подписанной Главой Отдела, и штат изменился?)
  2. Ваш формат отчета изменится (заголовок, нижний колонтитул, логотип, и т.д.)
  3. Документ, который Вы представили, сохранен кем-то еще, кто использует доступные данные в документе.
0
ответ дан 8 December 2019 в 17:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: