异步编程的最高境界,就是根本不用关心它是不是异步。(笔记)

    技术2022-07-11  86

    async 函数是什么?一句话,async 函数就是 Generator 函数的语法糖。

    有一个 Generator 函数,依次读取两个文件。

    var fs = require('fs'); var readFile = function (fileName){ return new Promise(function (resolve, reject){ fs.readFile(fileName, function(error, data){ if (error) reject(error); resolve(data); }); }); }; var gen = function* (){ var f1 = yield readFile('/etc/fstab'); var f2 = yield readFile('/etc/shells'); console.log(f1.toString()); console.log(f2.toString()); };

    写成 async 函数,就是下面这样。

    var asyncReadFile = async function (){ var f1 = await readFile('/etc/fstab'); var f2 = await readFile('/etc/shells'); console.log(f1.toString()); console.log(f2.toString()); };

    一比较就会发现,async 函数就是将 Generator 函数的星号(*)替换成 async,将 yield 替换成 await,仅此而已。

    Processed: 0.013, SQL: 9