Aleksandr-ru / RusCryptoJS

JS для Российской криптографии (ГОСТ)
https://aleksandr-ru.github.io/RusCryptoJS
GNU General Public License v3.0
61 stars 24 forks source link

JaCarta2::clean() не может выполниться правильно #3

Closed Danbka closed 4 years ago

Danbka commented 5 years ago

Добрый день.

Спасибо за ваш проект.

Метод JaCarta2::clean() не сможет очистить токен, т.к. согласно документации (см. https://developer.aladdin-rd.ru/jc-webclient/4.0.0/api/utility.html#isasyncoperationinprogress) в данный момент времени может выполняться только одна асинхронная операция, а остальные будут проигнорированы.

var promises = [];
for(var i in containers) {
    promises.push(new Promise((resolve, reject) => {
        client.deletePKIObject({
            args: {
                id: containers[i].id
            },
            onSuccess: resolve,
            onError: errorHandler(reject)
        });
    }));
}
return Promise.all(promises);

Если контейнеров больше 1, то при выполнении кода только первый promise перейдет в состояние resolved. Остальные останутся "pending", и как следствие Promise.all(promises) тоже не будет resolved.

Aleksandr-ru commented 5 years ago

Да, похоже вы правы, поправлю в ближайшее время или вы можете сделать PR.

Aleksandr-ru commented 5 years ago

Кстати, подобный подход используется в функции listCertificates, у вас список сертификатов с токена показывается?