node 异步编程
异步与同步
- 异步 :所谓异步就是另外执行的代码,不与同步代码一同执行,不等异步代码执行完毕,直接执行下面的代码;
- 同步: 就是我平时的代码执行顺序,从上往下一行一行执行;
异步执行的优缺点
优点:
可以分线程执行代码,同时执行不同功能的代码,比如,一个人要做饭,买菜,切菜,煮油,然后去煮开水,放米,煮开,这样是同步执行很浪费时间,但是我们的异步就相当于,把水煮上,在煮着水的同时,去买菜,切菜,同时执行多个任务,提高效率
缺点:
在异步执行的时候,如果我们需要异步执行的数据的时候,在下面代码中进行调用数据,就无法得到异步执行代码中的数据
异步同步:
异步转同步 回调问题 promise方法解决
promise解决回调
function readFile(path) {
return new Promise((resolve, reject) => {
fs.readFile(path, 'utf8', (err, data) => {
resolve(data)
})
})
}
let p1 = readFile(a_path)
p1.then(data => {
console.log(data)
return readFile(b_path)
}).then(data => {
console.log(data)
return readFile(c_path)
}).then(data => {
console.log(data)
})