синтаксис для Jquery.deferred, обещая синхронную функцию возврата
Быстрый вопрос о том, как использовать Jquery.deferred, чтобы медленная синхронная функция возвращала обещание. На данный момент я сделал следующее:
function sayIt(ms) {
setTimeout( function() { console.log('what I say'); }, ms);
}
function doIt() {
return $.Deferred( function() { sayIt(2000); }).promise();
}
doIt().then( function() { console.log('ah'); });
sayIt (2000) всегда проходит, но цепочечная функция после «затем» никогда не стреляет
Если я сделаю это:
doIt().then( console.log('ah'));
«ах» подходит сразу, а затем «то, что я говорю»; 2000 мс позже - то, что я хочу, конечно, наоборот - что через две секунды я получаю «то, что я говорю». а затем «ах»; сразу после.
Любые предложения приветствуются!