Nodejs新特性async和await的使用詳解
1.Es6常見語法的使用
1.let
、const
let
:是一個塊作用域
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.箭頭函數
setTimeout(() => { console.log("我被執行瞭") }, 1000)
3.對象、屬性和方法的簡寫
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
如果要在外面獲取異步對象執行的結果,可以使用callback
回調方式
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
是異步的簡寫,而await
可以認為是async wait
的簡寫,所以應該很好理解:async
用於申明一個異步的fuction
,而await
用於等待一個異步方法執行完成。
2.簡單示例
1.async
方法通常應該返回一個Promise
對象
async function test(){ // 通常異步方法中返回一個Promise對象,如果給定的是字符串,內部也會將其轉換為Promise對象 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()) 錯誤寫法 async function main(){ let result = await test(); // await必須用在async方法中 console.log(result) } main();
到此這篇關於Nodejs新特性async和await的使用的文章就介紹到這瞭,更多相關Nodejs async和await使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vue中Promise的使用方法詳情
- await-to-js源碼深入理解處理異步任務用法示例
- 一文秒懂nodejs中的異步編程
- 徹底搞懂 javascript的Promise
- Vue中的同步調用和異步調用方式