由于公司需要,部分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:转载请注明出处