Javascript 屏幕操作不显示所需的行为(AngularJS)

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

你还好吗? 我对AngularJS有意见。 该屏幕具有以下行为:单击按钮恢复密码时,加载屏幕加载约60秒,然后给出错误消息,并发送电子邮件

此代码段来自一个服务,负责通过电子邮件恢复密码。 我打算解决这个错误,但我不知道如何开始。代码已经准备好了

服务

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.";

}