由於公司需要,部分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:轉載請註明出處