Nodejs新特性async和await的使用詳解
1.Es6常見語法的使用
1.let
、const
let
:是一個(gè)塊作用域
if (true) { let a = 123; } console.log(a); // a is not defined
const
:定義常量
const PI = 3.1415926; PI = 3.15 // Assignment to constant variable. console.log(PI)
var
:全局變量
2.箭頭函數(shù)
setTimeout(() => { console.log("我被執(zhí)行了") }, 1000)
3.對(duì)象、屬性和方法的簡(jiǎn)寫
const name = "王五" var person = { // "name": name // name: name name } console.log(person.name)
var name = "候七" var app = { name, // run: function(){ // console.log(`${this.name}在跑步`) // }, run(){ console.log(`${name}在跑步`) } } app.run()
4.模板字符串
const name = "張三" const age = 27 console.log(`${name}的年齡是${age}`)
5.Promise
主要用來處理異步,比如下面的示例
function getData(){ // 異步 setTimeout(function(){ let name = "孫悟空"; return name }, 1000) } console.log(getData()) // undefined
如果要在外面獲取異步對(duì)象執(zhí)行的結(jié)果,可以使用callback
回調(diào)方式
function getData(callback){ setTimeout(function(){ let name = "孫悟空"; callback(name); }, 1000) } getData(function(result){ console.log(result) // 孫悟空 })
Es6
中新特性Promise
方法
var p = new Promise(function(resolve, reject){ setTimeout(function(){ let name = "豬八戒"; resolve(name) }, 1000); }) p.then(function(data){ console.log(data); })
2.Async、Await和Promise
1.定義:
async
是異步的簡(jiǎn)寫,而await
可以認(rèn)為是async wait
的簡(jiǎn)寫,所以應(yīng)該很好理解:async
用于申明一個(gè)異步的fuction
,而await
用于等待一個(gè)異步方法執(zhí)行完成。
2.簡(jiǎn)單示例
1.async
方法通常應(yīng)該返回一個(gè)Promise
對(duì)象
async function test(){ // 通常異步方法中返回一個(gè)Promise對(duì)象,如果給定的是字符串,內(nèi)部也會(huì)將其轉(zhuǎn)換為Promise對(duì)象 return "hello nodejs"; } console.log(test()) // Promise {[[PromiseState]]: 'fulfilled', [[PromiseResult]]: 'hello nodejs', Symbol(async_id_symbol): 5, Symbol(trigger_async_id_symbol): 1}
async function test(){ return new Promise(function(resolve, reject){ resolve("hello nodejs") }) } console.log(test())
2.await
方法必須在async
方法中使用
async function test(){ return new Promise(function(resolve, reject){ resolve("hello nodejs") }) } // console.log(await test()) 錯(cuò)誤寫法 async function main(){ let result = await test(); // await必須用在async方法中 console.log(result) } main();
到此這篇關(guān)于Nodejs新特性async和await的使用的文章就介紹到這了,更多相關(guān)Nodejs async和await使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.js實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳示例詳解
這篇文章主要為大家介紹了Node.js實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例
這篇文章主要為大家介紹了服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06node操作mysql數(shù)據(jù)庫實(shí)例詳解
這篇文章主要介紹了node操作mysql數(shù)據(jù)庫,結(jié)合實(shí)例形式較為詳細(xì)的分析了node操作數(shù)據(jù)庫的連接、增刪改查、事務(wù)處理及錯(cuò)誤處理相關(guān)操作技巧,需要的朋友可以參考下2017-03-03Node.js設(shè)置CORS跨域請(qǐng)求中多域名白名單的方法
這篇文章主要介紹了Node.js設(shè)置CORS跨域請(qǐng)求中多域名白名單的方法,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03node+koa+canvas繪制出貨單、收據(jù)票據(jù)的方法
在生成票據(jù)需求中,我們會(huì)想到前端生成或者后端生成返回圖片地址訪問兩個(gè)方法,前端生成則不需要調(diào)用接口,而后端是在完成整個(gè)流程時(shí)就進(jìn)行生成然后把上傳的地址保存數(shù)據(jù)庫,這篇文章主要介紹了node+koa+canvas繪制出貨單,收據(jù),票據(jù),需要的朋友可以參考下2022-09-09Express URL跳轉(zhuǎn)(重定向)的實(shí)現(xiàn)方法
Express是一個(gè)基于Node.js實(shí)現(xiàn)的Web框架,其響應(yīng)HTTP請(qǐng)求的response對(duì)象中有兩個(gè)用于URL跳轉(zhuǎn)方法res.location()和res.redirect(),使用它們可以實(shí)現(xiàn)URL的301或302重定向。2017-04-04nodejs使用http模塊發(fā)送get與post請(qǐng)求的方法示例
這篇文章主要介紹了nodejs使用http模塊發(fā)送get與post請(qǐng)求的方法,結(jié)合實(shí)例形式分析了nodejs基于http模塊實(shí)現(xiàn)發(fā)送get與post請(qǐng)求具體操作技巧,需要的朋友可以參考下2018-01-01