以下代码给我一个错误,指出getConfigDetails
...然后不是函数。如果getConfigDetails
变量设置为true,我想从函数isConfigLoaded
返回一个Promise,否则继续调用它,直到实现。
var getConfigDetails = function () {
if ($rootScope.isconfigloaded) {
configDetails.roles = $rootScope.orgConfig.roles.slice();
configDetails.departments = $rootScope.orgConfig.departments.slice();
configDetails.levels = $rootScope.orgConfig.levels.slice();
configDetails.designation = $rootScope.orgConfig.designation.slice();
return Promise.resolve();
} else {
setTimeout(function(){
getConfigDetails();
},200);
}
};
getConfigDetails().then(function(){});
答案 0 :(得分:0)
您可以执行以下操作:
usernameCtrl = this.fb.control('', [
Validators.required,
Validators.minLength(4),
username
], this.checkUsername.bind(this));
您应该可以像var getConfigDetails = new Promise(function(resolve, reject){
var ticker = setInterval(function(){
if ($rootScope.isconfigloaded) {
//the other stuff
clearInterval(ticker);
resolve();
}
}, 200);
});
请注意,它不是功能,只是一个承诺。如果您确实希望将其用作函数,请执行以下操作:
getConfigDetails.then(function(){})