Nodejs新特性async和await的使用詳解
1.Es6常見(jiàn)語(yǔ)法的使用
1.let、const
let:是一個(gè)塊作用域
if (true) {
let a = 123;
}
console.log(a); // a is not definedconst:定義常量
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)寫(xiě)
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
主要用來(lái)處理異步,比如下面的示例
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)寫(xiě),而await可以認(rèn)為是async wait的簡(jiǎn)寫(xiě),所以應(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ò)誤寫(xiě)法
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請(qǐng)求HTTPS報(bào)錯(cuò):UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解決方法
最近在工作中遇到一個(gè)問(wèn)題,node.js請(qǐng)求HTTPS時(shí)報(bào)錯(cuò):Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\,通過(guò)查找網(wǎng)上的一些資料找到了解決方法,現(xiàn)在總結(jié)下分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12
Nodejs開(kāi)發(fā)grpc的實(shí)例代碼
Nodejs開(kāi)發(fā)grpc包含靜態(tài)和動(dòng)態(tài)兩種代碼生成方式,靜態(tài)代碼生成需要提前通過(guò).proto文件編譯生成JS源碼,而動(dòng)態(tài)代碼生成則是在運(yùn)行時(shí)指定IDL文件位置,實(shí)時(shí)生成源碼,兩者各有優(yōu)缺點(diǎn),本文給大家介紹Nodejs開(kāi)發(fā)grpc的實(shí)例代碼,感興趣的朋友一起看看吧2024-10-10
NodeJS創(chuàng)建基礎(chǔ)應(yīng)用并應(yīng)用模板引擎
這篇文章主要介紹了NodeJS創(chuàng)建基礎(chǔ)應(yīng)用并應(yīng)用模板引擎的相關(guān)資料,需要的朋友可以參考下2016-04-04
Node.js操作redis實(shí)現(xiàn)添加查詢(xún)功能
Redis 是一個(gè)基于內(nèi)存的鍵(key)值(value)類(lèi)型的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)容器,它既可以完全工作在內(nèi)存中,也可以持久化存儲(chǔ)。當(dāng) Redis 工作于持久化模式時(shí),可以將它當(dāng)作一個(gè)非關(guān)系型數(shù)據(jù)庫(kù)使用。2017-05-05

