1、要求
async function delayed (params) {
//在这里加入一段代码,让后面的打印1,延迟1s执行
console.log(1)
};
delayed ()
2、实现
async function delayed (params) {
await new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, 1000);
})
console.log(1)
};
delayed ()
3、 async/await 讲解
3.1 定义
async await是ES7重要特性之一,是目前公认的异步解决方案。async/await的作用是直接将Promise异步代码变为同步的写法,注意,代码仍然是异步的。
3.2 注意点
await只能用在async修饰的方法中,但是有async不要求一定有await。
await后面只能跟async方法和promise。
async函数的使用
async函数返回的是一个Promise对象,即最后return的内容会变为then方法的resolve方法的参数,而抛出的错误会被catch方法捕获
async function asy(){
return 'i am promise';
}
asy().then(val=>console.log(val))
// i am promise
async function asy(){
throw new Error('i throw error');
}
asy().then().catch(e=>console.log(e))
// Error: i throw error
await函数的使用
正常情况下,await命令后面是一个Promise对象,若不是Promise对象,则直接返回该值。
async function asy(){
return await 'not promise';
}
asy().then(val=>console.log(val))