关键词:async 、await、promise
这三个东西 可以优雅的解决异步问题。在学习koa2的时候遇到了获取数据后再进行模板渲染的异步问题。在查找各种资料后成功的解决了该问题,现在写个笔记记录一下。
先说一下async、await,第一次见到这两个词是在学习vue的时候。因为前端在写代码的时候经常的会遇到向后台请求数据这样的场景,等待数据返回才可以进行下一步的操作。这就不得不处理异步这种情况。
async、await基本的语法就是:
let asyncFn = async()=> {
let data = null;
data = await getData(url);//getData()返回的数据是 {name:'my name is data!'}
console.log(data.name);//打印出的是my name is data!
}
getData();为一个封装了请求数据的方法;
如果不处理异步的情况:
let notAsyncFn =()=> {
let data = null;
data = getData(url);//getData()返回的数据是 {name:'my name is data!'}
console.log(data.name);//打印出的是undefined; 因为data此时还是null;
}
await 命令后面的 函数返回的是一个Promise 对象,运行结果可能是 rejected,所以最好把 await 命令放在 try...catch 代码块中。
getData函数的代