Javascript bcrypt比较:未触发回调
我对bcrypt.compare()有一个奇怪的问题 选中此项:Javascript bcrypt比较:未触发回调,javascript,react-native,bcrypt,Javascript,React Native,Bcrypt,我对bcrypt.compare()有一个奇怪的问题 选中此项: function logUserIn(redirectRouteName) { setIsLogin(true); const fields = User.getPropertiesName(); Base('Customers').select({ maxRecords: 1, fields, filterByFormula: `email = "${state.use
function logUserIn(redirectRouteName) {
setIsLogin(true);
const fields = User.getPropertiesName();
Base('Customers').select({
maxRecords: 1,
fields,
filterByFormula: `email = "${state.username}"`
}).eachPage((records, fetchNextPage) => {
const user = new User(records[0].fields);
bcrypt.setRandomFallback((len) => {
const buf = new Uint8Array(len);
return buf.map(() => Math.floor(isaac.random() * 256));
});
bcrypt.compare(state.password, user.password, (err, res) => {
// console.log('hello'): returns nothing...
if(res){
setUserData(user);
setIsLogin(false);
props.navigation.navigate(redirectRouteName);
}
});
}, (err) => {
if (err) { console.error(err); return; }
});
}
我的问题是,没有触发bcrypt比较回调。我在它周围放了日志,很好,
state.password
和user.password
do包含预期值。实际上,bcrypt.compare中没有执行任何内容,因此。。。我在这里迷路了。有什么想法吗?您确定每个页面的回调都会运行吗?确保没有任何用户记录。是的。我可以在运行bcrypt compare之前记录用户数据,它确实包含预期的值。是否.setRandomFallback
和.compare
方法按预期顺序执行?在内部。比较回调,你能记录错误和恢复吗?不,我不能。实际上,经过1小时的调试,结果是props.navigation.navigate(redirectRouteName)代码>正在悄无声息地失败,正在中断回调中的所有日志。。。