2016-08-18 4 views
0

Почему этот рабочий (основано на console.log выхода)Javascript обещания решительности функция против Resolve анонимной функции

return new Promise(function(resolve) { 
    var test = function() { 
     console.log('rrrr'); 
     return $timeout(function(){},100); 
    } 
    resolve(test()); 
} 

Но это не?

return new Promise(function(resolve) { 
    resolve(function() { 
     console.log('rrrr'); 
     return $timeout(function(){},100); 
    }); 
} 
+1

Является ли это только ради примера? Потому что ни фрагмент действительно не имеет смысла. –

+0

Что возвращает '$ timeout'? –

+0

@torazaburo в угловой он возвращает Promise – Gerard

ответ

1

Поскольку верхний вызывает тестовую функцию, но нижний один только определяет анонимная функция.

Попробуйте это, он должен работать:

return new Promise(function(resolve) { 
    resolve(function() { 
     console.log('rrrr'); 
     return $timeout(function(){},100); 
    }()); // the extra() will call your anonymous function. 
} 
+0

Да, отлично. Благодаря! – Gerard

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