Nodejs讓異步變成同步的方法
異步給我們帶來的性能是明顯的,但同時(shí)也給我們帶了復(fù)雜的業(yè)務(wù)邏輯過程,特別請(qǐng)求依賴多的時(shí)候,下面我們來看看如何解決此類這樣的問題。

使用方法
在這里我們信賴于co這個(gè)庫(kù)。
npm install co --save #or yarn add co
模擬
# 登錄請(qǐng)求
let loginReq = new Promise((resolve,reject)=>{
setTimeout(function () {
resolve({success:true})
},2000)
});
# 獲取用戶信息
let userInfoReq = new Promise((resolve,reject)=>{
setTimeout(function () {
resolve({nickName:'dounine'})
},2000)
});
# 異步處理過程
loginReq.then(res=>{
if(res.success){
userInfoReq.then(userInfo=>{
console.log('獲取成功')
## 如果還有信賴,需要繼續(xù)寫,還沒有邏輯業(yè)務(wù)參與
})
}
})
# 同步處理過程
co(function *(){
let loginInfo = yield loginReq;
if(loginInfo.success){
let userInfo = yield userInfoReq;
console.log('獲取成功')
}
})總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Node.js創(chuàng)建子進(jìn)程的幾種實(shí)現(xiàn)方式
這篇文章主要介紹了Node.js創(chuàng)建子進(jìn)程的幾種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
Nodejs使用express 編寫接口的實(shí)現(xiàn)
express是一個(gè)第三方模塊,支持豐富的api,本文主要介紹了Nodejs使用express 編寫接口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
淺談Node新版本13.2.0正式支持ES Modules特性
這篇文章主要介紹了淺談Node新版本13.2.0正式支持ES Modules特性,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Node.js使用NodeMailer發(fā)送郵件實(shí)例代碼
本篇文章主要介紹了Node.js使用NodeMailer發(fā)送郵件實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03
Node.js連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程詳解
這篇文章主要為大家介紹了Node.js連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12

