目前来说,JS实现异步编程的最好方法还是: ①. Promise , ②. aysnc await方法
基本原则:如果只用Promise, 那异步过程只在Promise里, 如果想执行Promise后返回结果, 那就用 aysnc/await 调用Promise
Promise 方法
简单说,它的思想是,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数。比如,f1的回调函数f2,可以写成:f1().then(f2);
aysnc await 方法
如果,一个函数用async修饰,它return出来的就会是一个promise
执行函数时, 可以用 await修饰, 用以执行异步函数
一. 一个生动的Promise例子
下面这个例子是个非常经典的例子, 忘记了从哪位老铁哪里摘抄的了, 抱歉, 但是感谢!
//这是个普通函数
function read() {
console.log('小明认真读书');
}
//这是个异步函数
function eat() {
return new Promise((resolve, reject) => {
console.log('好嘞,吃饭咯');
setTimeout(() => {
resolve('饭吃饱啦');
}, 1000)
})
}
//这是个异步函数
function wash() {
return new Promise((resolve, reject) => {
console.log('唉,