函数返回值

因为是同步执行,所以返回值一般在外面无法使用,执行时回调函数还没执行完

用 Node 只能把后续的步骤写在回调函数里被继续调用和执行了 可以用 promise、 generator 之类方式弄更习惯的写法,

使用

  1. promise:是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。

https://blog.csdn.net/swimming_in_IT_/article/details/78350126

  1. generator: 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同。

http://es6.ruanyifeng.com/#docs/generator

  1. async:是 Generator 函数的语法糖。比generator好用多了。

https://blog.csdn.net/swimming_in_IT_/article/details/78351584

promise

readFile('content.js').then(data => {
    console.log(data.toString());
    return readFile('content2.js');
}).then(data => {
    console.log(data.toString());
}).catch(err => console.log(err))

async

//async
async function asyncReadFile(){
    let a = await readFile('content.js');
    console.log(a.toString());

    let b = await readFile('content2.js');
    console.log(b.toString());
}

asyncReadFile();

好用

await

如果async函数体中有多个await 声明的函数

await 之间是并发的,await声明的函数体内部是继发的