nodejs 学习三 异步和同步

同步函数

for (let i = 0; i < 10; i ++) {
setTimeout(() => {
console.log(`${i} ______ ${new Date}`);
},500);
}

nodejs 学习三 异步和同步

发现秒数都是11

异步函数

const fs = require('fs');
const chalk = require('chalk'); const file1 = 'test1.txt';
const file2 = 'test2.txt'; // file1 文件的大小是远远大于file2的文件大小 // 异步1
fs.readFile(file1,(err,data)=>{
if(err) {
console.error(err);
return;
}
let async_txt = data.toString();
console.log(async_txt); console.log(chalk.red('Async1'));
}); // 同步
const data = fs.readFileSync(file1);
let sync_txt = data.toString();
console.log(sync_txt); console.log(chalk.red('Sync')); // 异步2
fs.readFile(file2,(err,data)=>{
if(err) {
console.error(err);
return;
}
let async_txt = data.toString();
console.log(async_txt); console.log(chalk.red('Async2'));
});

你会发现 Async2 不是最后一个打印出来,而是Async1是最后打印的。

从写法可以看出,异步执行函数(或方法)都含有回调函数。

上一篇:创建日志表记录DML操作和DDL操作


下一篇:Java8学习之异步编程