Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.05.2019, 16:20
Кандидат Javascript-наук
Отправить личное сообщение для Castromen Посмотреть профиль Найти все сообщения от Castromen
 
Регистрация: 04.02.2015
Сообщений: 115

return hash undefined
Добрый день.
Пишу функцию генерацию hah но при вызове ее выдает undefined,
Подскажите плз. где проблема
let t = getHash('Test')

//Вариант 1
export function getHash(p1) {
    let text = "";
    let possible = "abcdefghijklmnopqrstuvwxyz1234567890+=-/!?";
    for (let i = 0; i < 8; i++) text += possible.charAt(Math.floor(Math.random() * possible.length));
    let t = sha256(p1 + text).then(hash => {
        return hash
    }).catch(error => {console.log("Ошибка получение Hash")})

}


//Вариант 2
export function getHash(p1) {
    let text = "";
    let possible = "abcdefghijklmnopqrstuvwxyz1234567890+=-/!?";
    for (let i = 0; i < 8; i++) text += possible.charAt(Math.floor(Math.random() * possible.length));
    let t = sha256(p1 + text).then(hash => {
    }).catch(error => {console.log("Ошибка получение Hash")})
   return t
}
Ответить с цитированием
  #2 (permalink)  
Старый 11.05.2019, 18:46
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,708

Сообщение от Castromen
.then(hash => {
    })
У вас получается тип Promise<undefined>

У вас вычисляется скорей UID, чем hash!

async function sha256(message) {
	const encoder = new TextEncoder();
	const data = encoder.encode(message);
	return crypto.subtle.digest("SHA-256", data).then(hexString);
}

function hexString(buffer) {
	const byteArray = new Uint8Array(buffer);

	const hexCodes = [...byteArray].map(value => {
		const hexCode = value.toString(16);
		return hexCode.padStart(2, "0");
	});

	return hexCodes.join("");
}

function getUID(p1) {
	let text = "";
	let possible = "abcdefghijklmnopqrstuvwxyz1234567890+=-/!?";
	for (let i = 0; i < 8; i++) text += possible.charAt(Math.floor(Math.random() * possible.length));
	return sha256(p1 + text).catch(error => { console.log("Ошибка получение UID"); });
}

function getHash(p1) {
	return sha256(p1 + "/7re!t4+").catch(error => { console.log("Ошибка получение Hash"); });
}

(async function main() {
	console.log("Hash", await getHash('Test'));
	console.log("Hash", await getHash('Test'));

	console.log("UID", await getUID('Test'));
	console.log("UID", await getUID('Test'));
})();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мобильная версия сайта переходит в ПК версию сайта. Luara Элементы интерфейса 0 25.04.2017 10:00
Анимация для движения блока вниз и вверх snovapavel jQuery 9 24.12.2015 22:12
Прошу раскритиковать наслойку работы с MySql. Alasdair Node.JS 4 21.11.2015 19:06
Jin: И снова о наследовании tenshi Ваши сайты и скрипты 16 19.08.2013 19:30
Борьба с Object.defineProperty в IE8 FINoM Оффтопик 46 04.09.2012 22:45