node 合并多个请求的数据
function getList1(num) {
var url= "netease/search?keyword=独孤天下&type=song&pageSize=10&page=0";
return ajaxGET(url)
}
function getList2(num) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("haha第2个啊")
}, 1100);
} )
}
function getList0(num) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("haha第 0个啊")
}, 10);
} )
}
async function testResult() {
try {
let result0 = await getList0(); // 搜索 id
let result1 = await getList1();//搜索歌词
let result2 = await getList2(); // 搜索 id
console.log(result0,result1,result2);
} catch(err) {
console.log(err);
}
}
testResult();
eventproxy 控制并发
var ep = new eventproxy();
ep.all('data1_event', 'data2_event', 'data3_event', function (data1, data2, data3) {
var html = fuck(data1, data2, data3);
render(html);
});
$.get('http://data1_source', function (data) {
ep.emit('data1_event', data);
});
$.get('http://data2_source', function (data) {
ep.emit('data2_event', data);
});
$.get('http://data3_source', function (data) {
ep.emit('data3_event', data);
});
async控制并发,可以控制并发数
ar async=require('async')
var test=function(item,callback){
setTimeout(function(){
console.log(item+'ok')
callback(null,item+'result')
},2000)
}
var items=[1,2,3,4,5,7,8,9,10]
async.mapLimit(items,2,function(item,callback){
test(item,callback)
},function(err,result){
console.log(result)
})