中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

NodeJs異步編程的含義是什么

本文小編為大家詳細介紹“NodeJs異步編程的含義是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“NodeJs異步編程的含義是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

成都創新互聯致力于互聯網網站建設與網站營銷,提供網站制作、成都網站建設、網站開發、seo優化、網站排名、互聯網營銷、微信小程序、公眾號商城、等建站開發,成都創新互聯網站建設策劃專家,為不同類型的客戶提供良好的互聯網應用定制解決方案,幫助客戶在新的全球化互聯網環境中保持優勢。

首先理解什么是異步編程

含義:

  • 有異步肯定會有同步

  • 凡是回調函數存在的,都是異步代碼

  • 先執行同步代碼,看到異步代碼后,將異步代碼放到異步代碼執行區(先不執行)

  • 繼續執行同步代碼,當所有的同步代碼執行結束后,在執行異步代碼

異步代碼案例:

console.log('1');
setTimeout(()=>{
	console.log('2秒后再執行...');
},2000);
console.log('end');

程序執行完畢后的輸出結果:
1
恩德
2秒后再執行…

總結:代碼會在執行中會依次執行,但執行到回調函數,就會把回調函數放入異步代碼執行區,先不執行,如果代碼執行完后,再去依次執行放入異步代碼執行區。

同步代碼行案例:

for(let i=0;i<10;i++){
	console.log(i);
}
console.log('end');

程序執行完畢后的輸出結果:
0123456789
end
總結:同步代碼,for循環無論執行多久,下面代碼都要等待它執行完畢后才會執行。

2.為什么有異步編程

nodejs 特點是單線程、異步、非阻塞,如果代碼邏輯涉及到多個回調,就會出現非常可怕的代碼,不利于后期的維護。

而異步編程的作用就是提高效率,現在對程序越來越大,CPU和內存對壓力也越來越大,異步可以讓電腦同時處理多個事務,所以需要異步編程。

3.如何處理異步編程出現的問題

在我們項目當中,會出現一些問題,比如,拿不到值,是undefined,是因為異步編程。
解決方案:回調函數嵌套、 Promise、 await、async語法糖 變成同步

現在文件夾里有1,2,3三個txt文件,我們需要讀取這三個文件,如果直接讀取第一遍可能順序對第二遍就會出現順序混亂的情況,所以我們需要處理異步的問題,讓他按順序執行

使用回調函數嵌套代碼:

const fs=require('fs')
const path =require('path')
let p1=path.join('1.txt')
let p2=path.join('2.txt')
let p3=path.join('3.txt')
fs.readFile(p1,'utf8',(err,data)=>{
    if(err) throw err
    console.log(data)
    fs.readFile(p2,'utf8',(err,data)=>{
        if(err) throw err
        console.log(data)
        fs.readFile(p3,'utf8',(err,data)=>{
            if(err) throw err
            console.log(data)
        })
    })
})

使用Promise代碼:

// new promise 的作用:讓異步代碼馬上執行
const fs=require('fs')
function readFile(path){
    return new Promise((resolve,reject)=>{
        fs.readFile(path,'utf8',(err,data)=>{
            resolve(data)
        })
    })
}
let p1=readFile('1.txt')
let p2=readFile('2.txt')
let p3=readFile('3.txt')
p1.then(result=>{
    console.log(result)
    return p2
}).then(result=>{
    console.log(result)
    return p3
}).then(result=>{
    console.log(result)
    return p3
})

還可以使用 await、async語法糖 代碼:

const path=require('path')
const fs=require('fs')
let p1=readFile('1.txt')
let p2=readFile('2.txt')
let p3=readFile('3.txt')
var readfile=(path)=>{
    return new Promise((resolve,reject)=>{
        fs.readFile(path,'utf8',(err,data)=>{
            resolve(data)
        })
    })
}

async function exec() {
    await readfile(p1).then(result => console.log(result))
    await readfile(p2).then(result => console.log(result))
    await readfile(p3).then(result => console.log(result))
}
exec()

讀到這里,這篇“NodeJs異步編程的含義是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創新互聯行業資訊頻道。

文章名稱:NodeJs異步編程的含義是什么
文章位置:http://m.2m8n56k.cn/article2/ggdgic.html

成都網站建設公司_創新互聯,為您提供外貿網站建設關鍵詞優化小程序開發品牌網站建設網站設計公司定制網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設
主站蜘蛛池模板: 欧美xxxxx九色视频免费观看 | 亚洲精品国产高清不卡在线 | 国产成人99久久亚洲综合精品 | 91视频久久| 泰国情欲片寂寞的寡妇在线观看 | 国产成人深夜福利在线观看 | aaa在线| 欧美一级片免费观看 | 成年人午夜免费视频 | 久久久久久综合七次郎 | 国产一区二区三区欧美 | 欧美午夜视频一区二区三区 | 毛片免费观看日本中文 | 欧美1区二区三区公司 | 亚洲国产成人久久一区久久 | 中文字幕日韩三级 | 欧美成人视 | 亚洲 欧美 激情 另类 自拍 | 欧美一级片在线看 | 97在线视频网站 | 精品少妇一区二区三区视频 | heyzo国产亚洲高清 | 亚洲综合亚洲综合网成人 | 欧美在线观看免费一区视频 | 日本无卡码一区二区三区 | 婷婷的久久五月综合先锋影音 | 成人久久18免费网站入口 | 国产精品理论 | 日本视频在线观看不卡高清免费 | 国产成人亚洲日本精品 | 久草在线免费资源 | 日本免费视频观看在线播放 | 精品国语_高清国语自产 | 国内自拍在线视频高清 | 亚洲经典在线 | 天天欲色成人综合网站 | 国产v精品成人免费视频400条 | 亚洲一区二区中文字幕 | 国产一级黄色 | 全部免费的毛片在线看美国 | 日本一二线不卡在线观看 |