java 異步回調(diào) 為什么NodeJS的回調(diào)會(huì)被稱(chēng)為地獄?
為什么NodeJS的回調(diào)會(huì)被稱(chēng)為地獄?nodejs中提供的所有異步操作都使用回調(diào)函數(shù),例如fs.readFile文件(“file name”,函數(shù)(err,data){!在前端模式下沒(méi)有問(wèn)題。DOM事
為什么NodeJS的回調(diào)會(huì)被稱(chēng)為地獄?
nodejs中提供的所有異步操作都使用回調(diào)函數(shù),例如fs.readFile文件(“file name”,函數(shù)(err,data){
!在前端模式下沒(méi)有問(wèn)題。DOM事件相對(duì)獨(dú)立或者需要多個(gè)事件協(xié)同
但是對(duì)于節(jié)點(diǎn)來(lái)說(shuō),事務(wù)中有很多異步調(diào)用的場(chǎng)景。例如,目錄遍歷操作的代碼如下:
}
]當(dāng)然,這是一個(gè)更好的情況。很多時(shí)候,業(yè)務(wù)邏輯非常復(fù)雜,嵌套層的數(shù)量更多。這是不容易閱讀和理解的代碼,這是非常混亂的dns.承諾
例如,可以按以下方式編寫(xiě):
const FS=require(“FS”)。允諾
異步函數(shù)main(){
const data=awaitfs.readfile文件作為一個(gè)it從業(yè)者和計(jì)算機(jī)專(zhuān)業(yè)教育者,讓我來(lái)回答這個(gè)問(wèn)題。
首先,編程語(yǔ)言本身與應(yīng)用場(chǎng)景有著密切的關(guān)系。通常,不同的開(kāi)發(fā)場(chǎng)景會(huì)使用不同的編程語(yǔ)言,所以編程語(yǔ)言種類(lèi)繁多,總共有600種左右。有幾十種比較常見(jiàn)的編程語(yǔ)言,其中Java、Python和PHP是比較常見(jiàn)的編程語(yǔ)言。
編程語(yǔ)言之間沒(méi)有直接關(guān)系,但在相同的技術(shù)架構(gòu)下,多種編程語(yǔ)言可以協(xié)作。例如,人工智能平臺(tái)可以使用java開(kāi)發(fā),但是在開(kāi)發(fā)特定的應(yīng)用程序時(shí),可以使用python語(yǔ)言。
從應(yīng)用場(chǎng)景的角度來(lái)看,Java和python屬于全場(chǎng)景編程語(yǔ)言,可以應(yīng)用在很多開(kāi)發(fā)場(chǎng)景中,如web開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)、移動(dòng)互聯(lián)網(wǎng)開(kāi)發(fā)、物聯(lián)網(wǎng)開(kāi)發(fā)等。目前,在大數(shù)據(jù)和人工智能領(lǐng)域,Python的應(yīng)用更為廣泛。隨著大數(shù)據(jù)和人工智能的發(fā)展,Python語(yǔ)言在未來(lái)的發(fā)展前景十分廣闊。
PHP語(yǔ)言的主要應(yīng)用場(chǎng)景是web開(kāi)發(fā)。雖然應(yīng)用場(chǎng)景比較單一,但是由于PHP語(yǔ)言在web開(kāi)發(fā)領(lǐng)域的高份額,使得web開(kāi)發(fā)領(lǐng)域有大量的PHP程序員。雖然目前移動(dòng)開(kāi)發(fā)已經(jīng)取得了快速的發(fā)展,開(kāi)發(fā)規(guī)模比較大,但是PHP仍然是比較重要的編程語(yǔ)言之一。對(duì)于基礎(chǔ)薄弱的初學(xué)者來(lái)說(shuō),從PHP開(kāi)始也是一個(gè)不錯(cuò)的選擇。
最后,對(duì)于程序員來(lái)說(shuō),在程序開(kāi)發(fā)過(guò)程中,通常需要掌握多種編程語(yǔ)言來(lái)處理不同的開(kāi)發(fā)場(chǎng)景。
計(jì)算機(jī)編程語(yǔ)言有DW,PHP,Java,python等它們都有什么關(guān)系?
比這更好節(jié)點(diǎn).js好多了。