异步专题

来源:互联网 发布:mac华康新篆体 编辑:程序博客网 时间:2024/06/12 04:20

更新时间:2017年11月09日10:00:44

    研发工程师需要学习的技术和技能很多,新技术需要不断学习跟进时代发展,但老的技术也需要深入体会和消化,知识的海洋是浩瀚的,学习的步伐不能松懈。

1、同步

    每一条js语句逐条执行

2、异步

    同步语句遇到异步语句,会开启新的异步线程;

3、异步方法同步执行

getData(){

ajax({data:{},success:(data)=>{this.state.answer = data}});

}

    上面的方法用于获取数据,如果采用下面的执行步骤,第二条语句是取不到answer的值,因为ajax是异步的;

getData();

console.log(this.state.answer);

    解决方案一:回调函数;首先改写getData方法如下,然后在调用的时候将回调函数以形参的形式传递进去;

getData(callback){

ajax({data:{},success:(data)=>{

this.state.answer = data;

callback()}});

}

callback(){

console.log(this.state.answer);

}

getData(callback);

    解决方案二:async函数

    异步方法获取数据如下,

getData(){

ajax({data:{},success:(data)=>{this.state.answer = data}});

}

    进行改写如下

async getData(){

await ajax({data:{},success:(data)=>{this.state.answer = data}});

}

    异步方法同步执行方案如下:

getData();

console.log(this.state.answer);







原创粉丝点击