Javascript 屏幕操作不显示所需的行为(AngularJS)
你还好吗? 我对AngularJS有意见。 该屏幕具有以下行为:单击按钮恢复密码时,加载屏幕加载约60秒,然后给出错误消息,并发送电子邮件 此代码段来自一个服务,负责通过电子邮件恢复密码。 我打算解决这个错误,但我不知道如何开始。代码已经准备好了 服务Javascript 屏幕操作不显示所需的行为(AngularJS),javascript,node.js,angularjs,Javascript,Node.js,Angularjs,你还好吗? 我对AngularJS有意见。 该屏幕具有以下行为:单击按钮恢复密码时,加载屏幕加载约60秒,然后给出错误消息,并发送电子邮件 此代码段来自一个服务,负责通过电子邮件恢复密码。 我打算解决这个错误,但我不知道如何开始。代码已经准备好了 服务 forgot: async (params) => { var deferred = Q.defer() var appData = {} const pool = await poolPromise if
forgot: async (params) => {
var deferred = Q.defer()
var appData = {}
const pool = await poolPromise
if (pool) {
var password = generator.generate({
length: 6,
numbers: true
})
bcrypt.hash(password, salt, async (err, hash) => {
var user = await userService.getUserByMail(params.email)
.then((user) => {
$scope.dadosold = response
$scope.dadosold.forEach(element => {
element.datainicio = new Date(element.datainicio)
element.datainicio.setDate(element.datainicio.getDate() + 2)
});
})
if (user) {
var r = pool.request()
r.input('senha', sql.NVarChar, hash)
r.input('id', sql.Int, user[0].id)
await r.query('UPDATE users SET senha = @senha where id = @id')
if (!err) {
appData.error = 0
appData['data'] = 'E-mail enviado com sucesso!'
deferred.resolve(appData)
try {
let mailOptions = {
from: '"Automed" <notifier@automed.com.br>',
to: user[0].email,
subject: 'Automed - Acesso',
html: 'Olá ' + user[0].nome + ',<br><br><br>Sua nova senha para acesso ao sistema é: <b>' + password + '</b><br><br><br><a href="#">Ir para o Automed</a><br><br>FAVOR NÃO RESPONDER ESSA MENSAGEM.' // html body
}
let newdata = user[0]
newdata.senha = hash
auditService.insertAudit(user[0].id, "users", "Nova Senha", JSON.stringify(user[0]), JSON.stringify(newdata))
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
logger.error(error)
}
});
} catch (err) {
logger.error(error)
}
} else {
appData.error = 1
appData['data'] = err
deferred.resolve(appData)
}
} else {
appData.error = 2
appData['data'] = 'Usuário não cadastrado.'
deferred.resolve(appData)
}
})
}
else {
appData['error'] = 3
appData['data'] = 'Internal Server Error'
deferred.resolve(appData)
}
return deferred.resolve()
}
有谁能告诉我可能有什么问题吗?由
async
/wait
创建的ES6承诺没有与AngularJS执行上下文集成。AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等。由async
/wait
创建的ES6承诺不会与AngularJS执行上下文集成。AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等。
$scope.esqueciSenha = function (row) {
$scope.erro = "";
$scope.success = "";
if (row != undefined && row.email != undefined) {
$scope.loading = true;
AuthService.Forgot(row)
.then(function (response) {
$scope.loading = false;
$scope.response = null;
row.email = "";
service.showToast("success", "Você receberá um e-mail com a sua senha de acesso.");
})
.catch(function (err) {
$scope.loading = false;
$scope.response = null;
try {
if (err.data.error == 2)
service.showToast("erro", "E-mail não cadastrado");
} catch (err) {
service.showToast("erro", "Ocorreu um erro ao tentar realizar o login. Favor entrar em contato com o suporte.");
}
});
} else
$scope.erro = "Favor preencher todos os campos.";
}