一、同步与异步
异步: 可以多条任务线去执行程序,一条任务卡顿不影响其他任务。
二、回调函数
三、promise对象
在ES2015中新加入了Promise对象,Promise对象用来解决异步问题,关于异步问题,我们会在第8章详细讲解,本章只要概括性地了解Promise对象的语法即可,创建一个Promise对象的语法如下所示:
1// resolve的作用是把异步获取的数据结果传递出来。2let getData =newPromise((resolve) => {3let data = "string data";4 resolve(data);5})
Promise构造函数的参数是一个函数,而函数的形参resolve同样也是一个函数,调用resolve可以将数据从promise对象中传递出来。
四、async函数
async函数
async函数与Promise对象结合使用,可以优雅地处理异步问题,声明async函数的语法如下所示:
1asyncfunction fun(){2//async函数内部可以使用await关键字3}
我们用一个实际的案例来讲解async函数与Promise对象的用法。
在Promise对象的示例中,我们用resolve函数将数据传递出来之后,然后可以用async函数中的await关键字接收数据,完整的实例代码如下所示。
1let getData =newPromise((resolve) => { 2let data = "string data"; 3 resolve(data); 4}) 5 6asyncfunction showData(){ 7let data = await getData; 8 console.log(data) 9}1011showData();
await后面跟着一个Promise对象,可以获取到Promise对象内部resolve传递出来的数据,这这里需要注意的是:
await关键字必须写在async函数内部。
网友评论