哪位朋友能给个详细的教程呢? 其实,有时候需求很简单,类似于: 使用request模块,写个getHtml(url)函数,返回一个网页的html源码。 然后每次调用的时候,我只需要简单的 var html=getHtml(‘http://www.baidu.com’); 而不用再写一长串的回调。
类似这样的需求,应该怎么用async/await,实现?
还是需要开启 --harmony
@artisan,开启–harmony无所谓,async/await是大趋势,先用着,稳定版肯定会支持,不会等太久的
对 我都已经准备把我koa2项目中的babel去掉啦
是不是需要代码都要写成async、await 能跟回调写法混用吗? 比如路由用回调,但是业务方法用await/async
‘use strict’;
var express = require(‘express’); var router = express.Router(); var request = require(‘request’);
/* GET home page. */ router.get(’/’, async function(req, res, next) { res.render(‘index’, { title: ‘Express’ }); console.log(’------------------------------------get start-------------------------------------------\n’); var html=await getHtml(‘http://www.baidu.com’); console.log(html); console.log(’---------------------------------------------get end-------------------------------------------\n’); });
var getHtml = function (url) { return new Promise(function (resolve, reject) { request(url, function (error, response, body) { if (!error && response.statusCode == 200) { resolve(body); } else { resolve(‘error’); } }) }) }; module.exports = router;
node7.10 运行:supervisor --harmony ./bin/www
node还有不用pm2用supervisor的?
尴尬~~~
async/await如何控制并发数量呢?
var request = require('request');
var getBody = function (url) {
return new Promise((resolve, reject)=> {
request({
url: url,
timeout: 30000,
headers: {
'User-Agent': 'Mozilla/5.0 (Arch Linux kernel 4.6.5) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.0 Chrome/39.0.2146.0 Safari/537.36'
}
})
})
};
(async function(){
let body =await request('http://baidu.com');
console.log(body);
})();
用 axios 这个库