nodejs-typescipt-Promise代码实例讲解,看完就理解async和await了

来源:互联网 发布:剑三苍云捏脸数据成男 编辑:程序博客网 时间:2024/05/18 02:55

这里就不讲解Promise和Async和Await什么东西了,直接上代码,和对应的结果。希望你能自己跑一边就知道他们之间的区别和什么时候用了。


标准代码和结果:

interface IBase{    do(i:number):Promise<any>;}class BaseClass implements IBase{    async do(i:number):Promise<any>{        return new Promise((resolve,reject)=>{            setTimeout(()=>{                resolve();            },i);        });    }}class Aclass extends BaseClass{    async run(i:number,s:string):Promise<void>{        let j = 0;        while(j<10){            console.log(s);            await this.do(i);            j++;        }    }}async function main(){    let a = new Aclass();    let b = new Aclass();        a.run(2000,'aaaaa');    b.run(3500,'bbbbb');    }main();
对应的输出(a每两秒输出一次,b每3.5秒输出一次,他们之间相互不影响各自的时间间隔,犹豫多线程一样。):

aaaaabbbbbaaaaabbbbbaaaaaaaaaabbbbbaaaaaaaaaabbbbbbbbbbbbbbb



如果把BaseClass中的return删除,则输入出入(并且输出是瞬间完成,没有等待时间

aaaaabbbbbaaaaabbbbbaaaaabbbbbaaaaabbbbbaaaaabbbbbaaaaabbbbb


恢复到最开始的代码,如果在main方法内  在a.run(xxxx)和b.run(xxxx)前面都加一个await,则返回结果如下(a每次2秒,a6次循环完毕后,b才开始出现,并且3.5秒一次

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbb



好啦,具体为什么是酱紫就有待各位自己去使用了。

跟着代码敲一遍,可能就会有更深入的理解了。


0 0