async.parallel 或 Q.all 我必须使用哪个?如何? + 节点
async.parallel or Q.all which I've to use? How? + NodeJS
你好我有以下代码,我想使用async.parallel
和Q.all
函数来并行执行函数调用。
该不该用请回复,您的回答都是我的感激之情
function getPath(x){
return (x/100); // It's demo here it's some big logic exist.
}
var array = [4,56,2,3,34,45,65,23,23,12,12,23,34,43,54,54]; // lack of data in array
var resultArr = [];
array.forEach(function(val){
resultArr.push(getPath(val));
})
// After 5-8 sec, I got results.
我可以使用 async.parellel
或 Q.all
执行相同的操作吗?
Q 和 promises 可以混合使用,您甚至可以等待与 A+ 兼容的 Q promises。这是一个使用 promises 的示例,另一个使用 async/await
function readDir(x) {
return new Promise(function(rs){
setTimeout(rs, x, x)
})
}
function getPath(x) {
return readDir(x).then(function(val){
return val / 100
})
}
var array = [4,56,2,3,34,45,65,23,23,12,12,23,34,43,54,54]; // lack of data in array
var resultArr = array.map(function(val) {
return getPath(val);
});
// Q.all is the equivulant of Promise.all
Promise.all(resultArr).then(console.log)
function readDir(x) {
return new Promise(function(rs){
setTimeout(rs, x, x)
})
}
async function getPath(x) {
var val = await readDir(x)
return val / 100;
}
async function init() {
var array = [4,56,2,3,34,45,65,23,23,12,12,23,34,43,54,54]; // lack of data in array
var resultArr = array.map(function(val) {
return getPath(val);
});
var result = await Promise.all(resultArr);
console.log(result)
}
init()
node v10 附带 fs.promises 非常整洁。
async function getPath(x) {
const files = await fs.promises.readdir(x)
console.log(files)
}
所有异步函数returns一个承诺
你好我有以下代码,我想使用async.parallel
和Q.all
函数来并行执行函数调用。
该不该用请回复,您的回答都是我的感激之情
function getPath(x){
return (x/100); // It's demo here it's some big logic exist.
}
var array = [4,56,2,3,34,45,65,23,23,12,12,23,34,43,54,54]; // lack of data in array
var resultArr = [];
array.forEach(function(val){
resultArr.push(getPath(val));
})
// After 5-8 sec, I got results.
我可以使用 async.parellel
或 Q.all
执行相同的操作吗?
Q 和 promises 可以混合使用,您甚至可以等待与 A+ 兼容的 Q promises。这是一个使用 promises 的示例,另一个使用 async/await
function readDir(x) {
return new Promise(function(rs){
setTimeout(rs, x, x)
})
}
function getPath(x) {
return readDir(x).then(function(val){
return val / 100
})
}
var array = [4,56,2,3,34,45,65,23,23,12,12,23,34,43,54,54]; // lack of data in array
var resultArr = array.map(function(val) {
return getPath(val);
});
// Q.all is the equivulant of Promise.all
Promise.all(resultArr).then(console.log)
function readDir(x) {
return new Promise(function(rs){
setTimeout(rs, x, x)
})
}
async function getPath(x) {
var val = await readDir(x)
return val / 100;
}
async function init() {
var array = [4,56,2,3,34,45,65,23,23,12,12,23,34,43,54,54]; // lack of data in array
var resultArr = array.map(function(val) {
return getPath(val);
});
var result = await Promise.all(resultArr);
console.log(result)
}
init()
node v10 附带 fs.promises 非常整洁。
async function getPath(x) {
const files = await fs.promises.readdir(x)
console.log(files)
}
所有异步函数returns一个承诺