##異步
** 所謂"異步",簡(jiǎn)單說(shuō)就是一個(gè)任務(wù)不是連續(xù)完成的,可以理解成該任務(wù)被人為分成兩段,先執(zhí)行第一段,然后轉(zhuǎn)而執(zhí)行其他任務(wù),等做好了準(zhǔn)備,再回過(guò)頭執(zhí)行第二段。
**比如,有一個(gè)任務(wù)是讀取文件進(jìn)行處理,任務(wù)的第一段是向操作系統(tǒng)發(fā)出請(qǐng)求,要求讀取文件。然后,程序執(zhí)行其他任務(wù),等到操作系統(tǒng)返回文件,再接著執(zhí)行任務(wù)的第二段(處理文件)。這種不連續(xù)的執(zhí)行,就叫做異步。
***相應(yīng)地,連續(xù)的執(zhí)行就叫做同步。由于是連續(xù)執(zhí)行,不能插入其他任務(wù),所以操作系統(tǒng)從硬盤(pán)讀取文件的這段時(shí)間,程序只能干等著。
##代碼實(shí)例
?*** function step1Func() {
? *** ?return 1;
?* ** ?}
*** ?function step2Func() {
*** return 2;
*** ?}
?***function step3Func() {
? *** ?return 3;
? *** }
**var steps = [step1Func,step2Func,step3Func];
** function * iterateSteps(steps){
** for (var i=0; i<steps.length;i++){
** var step=steps[i];
** yield step();
**}
**}
** let? aa=iterateSteps(steps);
** for(var name of aa){
** alert(name);
? ** }