首頁 > 軟體

Nodejs新特性async和await的使用詳解

2022-09-05 14:00:52

1.Es6常見語法的使用

1.letconst

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使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com