在p203中作者给了一个例子,我感觉这个例子写的不好,一开始我没有看懂,因为中间有很多细节没有交代,直到看了第二个用generator来实现ajax的例子之后才有所领悟。
所以我把作者给的这个用generator来实现数据加载时显示隐藏提示框的异步操作的同步化表达的例子改了一下,丰富了其中的一些细节。
function* loadUI(){ showLoadingScreen(); yield loadUIDataAnsynchronously(); hideLoadingScreen(); } function showLoadingScreen(){ console.log('show'); } function hideLoadingScreen(){ console.log('hide'); } function loadUIDataAnsynchronously(){ console.log('loading'); process.nextTick(function(){ console.log('loaded'); it.next(); }); } var it = loadUI(); it.next();