2015-01-09 2 views
0

У меня есть Угловое обслуживание с ниже подписью

function test(param1, param2, param3) { 
    var deferred = $q.defer(); 
    if(!param1 || !param2) { 
     deferred.reject(); 
     return deferred; 
    } else { 
     deferred.resolve(); 
    } 

    var helper1 = function(){}; 
    var helper2 = function(){}; 

    return deferred; 
} 

И когда называют

test().then(function(){ }, function(){ }); 

Решенным или Отклонено не выполняется. Что-то не так я делаю?

ответ

2

Вам нужно вернуть обещание от объекта deffer.

function test(param1, param2, param3) { 
     var deferred = $q.defer(); 
     if(!param1 || !param2) { 
      deferred.reject(); 
     } else { 
      deferred.resolve(); 
     } 

     var helper1 = function(){}; 
     var helper2 = function(){}; 

     return deferred.promise; 
    } 
+0

По-прежнему он не вызывает разрешение или отклоняет обработчик внутри. – redV

+0

, вы вызываете отказ или разрешение перед обращением. Используйте обещание, когда у вас что-то есть на таймере или на каком-либо вызове сервера. В вашем случае в идеале нет необходимости создавать обещание. – dhavalcengg

+0

Но тогда должно быть выполнено еще, если оно разрешено или отклонено уже правильно? – redV

Смежные вопросы