Вызов JWT.sign()
с пропущенным обратным вызовом выполнит его асинхронно - это то, что вы делаете, это означает, что вызов вернет undefined
, что вы и возвращаете.
Вы можете либо обещать этот вызов, либо синхронно вызывать JWT.sign
, который затем будет возвращен как обещание блока compare(..).then(...)
.
Чтобы «обещать» этот обратный вызов, ваш оператор возврата должен выглядеть примерно так:
return compare(password, dbPwdHash.password)
.then(
(res) => {
if (res) {
return new Promise((resolve, reject) => {
sign({id: dbPwdHash.id}, this.privateKey, {algorithm: 'ES512'}, (err, token) => {
if (err) {
reject(err);
} else {
console.log(token);
resolve({data: token});
}
});
});
}
;
}
)
.catch(
(err) => {
console.log(err);
},
);
ссылка: https://github.com/auth0/node-jsonwebtoken#jwtsignpayload- secretorprivatekey-опции обратного вызова
лучше использовать событие touchstart
с .on()
методом jQuery:
$(window).load(function() { // better to use $(document).ready(function(){
$('.List li').on('click touchstart', function() {
$('.Div').slideDown('500');
});
});
И я не понимаю, почему вы используете метод $(window).load()
, потому что он ждет всего загружаемая страница, это, как правило, медленно, в то время как вы можете использовать метод $(document).ready()
, который не ожидает загрузки каждого элемента на странице в первую очередь.
вы можете использовать вместо клика:
$('#whatever').on('touchstart click', function(){ /* do something... */ });