nodejs 學習三 異步和同步


同步函數

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

發現秒數都是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是最后打印的。

從寫法可以看出,異步執行函數(或方法)都含有回調函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM