zijili, я немного еще поотлаживался; после этого хотел бы заключить, что вы правы. Документация не совсем точна. Плагин из интерфейсных функций возвращает Promise-like объект с методом then.
Как проверял:
plugin.login(0, "1234567")
.then(function() {
document.getElementById("pluginStatus").innerHTML = "<pre>" + "Token logged in" + "</pre>";
})
.catch( msg => {
document.getElementById("pluginStatus").innerHTML = "<pre>" + msg + "</pre>";
})
.finally(
function() {
document.getElementById("pluginStatus").innerHTML = document.getElementById("pluginStatus").innerHTML + "<pre>" + "Finally" + "</pre>";
}
);
PIN-код неправильный, но catch и finally не зовется. Получить сообщение об ошибке можно, если указать в then вторым параметром функцию -- обработчик ошибки (как делается в https://aktivco.github.io/rutoken-plugin-demo/ )
Как получить Promises с catch/finally с тем же примером:
Promise.resolve().then(function() {
return plugin.login(0, "1234567")
})
.then(function() {
document.getElementById("pluginStatus").innerHTML = "<pre>" + "Token logged in" + "</pre>";
})
.catch( msg => {
document.getElementById("pluginStatus").innerHTML = "<pre>" + msg + "</pre>";
})
.finally(
function() {
document.getElementById("pluginStatus").innerHTML = document.getElementById("pluginStatus").innerHTML + "<pre>" + "Finally" + "</pre>";
}
);