关于如何使用 Jquery.deferred 使慢速同步函数返回一个 Promise 的快速问题。到目前为止我所做的是:
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) 总是通过,但“then”之后的链接函数永远不会触发。
如果我这样做:
doIt().then( console.log('ah'));
“啊”立即出现,然后 2000 毫秒后出现“我说什么”——我想要的当然是相反的——两秒钟后我得到“我说什么”,然后是“啊”。
任何建议表示赞赏!