Dans mon projet, j'ai un scénario dans lequel j'ai différents types de fonctions avec différents arguments. L'un de ces arguments contient la fonction de rappel. Et il y a aussi un cas où la fonction n'a pas d'arguments. Comme indiqué ci-dessous :
abc(string, function, number)
aaa(function, string)
bcd()
xyz(function)
cda(string, number, function, string)
Je dois écrire une fonction telle qu'indépendamment de l'irrégularité des fonctions ci-dessus, la fonction doit retourner une promesse.
Exemple :
// Assume $q has been injected
var defer = $q.defer();
function returnPromise(functionName, functionArgumentsInArray){
defer.resolve(window[functionName].apply(null, functionArgumentsInArray));
return defer.promise;
}
Comme vous pouvez le voir, la fonction ci-dessus ne résout pas la fonction de rappel mais juste la fonction.
Note : Les fonctions auront un maximum d'un argument de fonction ou aucun.
Je sais que cela peut être fait individuellement pour chaque cas comme suit :
function returnPromise(){
var defer = $q.defer();
abc("hey", function() {
defer.resolve(arguments);
}, 123);
return defer.promise;
}
Mais je cherche une enveloppe commune pour toutes ces fonctions.