溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nodejs新特性async和await如何使用

發(fā)布時(shí)間:2022-09-05 11:29:46 來(lái)源:億速云 閱讀:157 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Nodejs新特性async和await如何使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Nodejs新特性async和await如何使用”文章吧。

1.Es6常見(jiàn)語(yǔ)法的使用

1.letconst

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)寫(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如何使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI