NodeJS-Promise、await、async非同步變同步
阿新 • • 發佈:2019-02-13
由於公司需要,部分JAVA_WEB介面開發改為NodeJS。
NodeJS與JAVA相比起來較為輕量級,非同步請求呼叫。
總的來說,適用於做微服務。在使用NodeJS的非同步呼叫同時,難免會遇到需要同步的時候。
不說多了,上程式碼
非同步程式碼
const request = require('request'); let synchronous_post = function (url , params ){ let options = { url : url , form : params }; request.get(options , function(error,response,body){ console.log(body); }); } let demo = function(){ let url = "http://www.baidu.com/"; synchronous_post(url); } demo();
Promise、await、async非同步變同步
const request = require('request'); let synchronous_post = function (url , params ){ let options = { url : url , form : params }; return new Promise(function(resolve, reject){ request.get(options , function(error,response,body){ if(error){ reject(error); }else{ resolve(body); } }); }); } let demo = async function(){ let url = "http://www.baidu.com/"; let body = await synchronous_post(url); console.log(body); } demo();
Promise:在NodeJS中用於替代回撥函式,在使用NodeJS的KOA框架時可使用Promise來代替回撥函式。
await:表示等待 Promise 返回結果,在繼續執行。
async:由於nodejs是非同步程式設計模型,有一些在同步程式設計中很容易做到的事情,現在卻變得很麻煩。async的流程控制就是為了簡化這些操作。
PS:轉載請註明出處