我试图在我的程序完成并发送邮件之前在数据库中插入一条记录。但问题是我认为我的函数正在异步运行,在我收到成功插入数据库的成功消息之前,我的程序已完成并且 te 永远不会抛出错误。以下是我尝试过的。
Client.insertUser(sendInfo)
.then(
function (Data) {
if (Data == null || Data.User == null || Data.isPersonaUpdated == false) {
$state.go('register.failed');
}
}
)
.catch(
function () {
$state.go('register.failed');
}
)
客户端.js
_this.insertUser = function (sendInfo) {
var deferred = $q.defer();
$http({
method: 'POST',
url: Globals.userAuth ? 'InsertUser.go' : 'modules/guest/InsertUser.go',
data: sendInfo,
headers: {
'Content-type': 'application/json'
}
}).then(function successCallback(response) {
deferred.resolve(response.data);
}, function errorCallback(response) {
deferred.reject(response);
});
return deferred.promise;
};
Async并且await因为我们使用的是 ES6 而无法正常工作。关于如何使我的承诺调用同步的任何建议都会有所帮助。
发送激活邮件正在调用不同的承诺,并且不是同一链的一部分。
Client.sendAccountActivationMail(u).then(function(data) {
var isSuccess = angular.fromJson(data);
if (isSuccess) {
}
});
慕的地10843
相关分类