最近在做一个项目,后端框架是用的koa co+ generator的方案做rest API。 碰到一疑惑希望大神能帮忙指点一下, 其中一个业务场景需要根据key去Hbase中取对应的数据,因为key没有连续性所以如果有1000个key就需要取Hbase1000次数据。 我是用的thrift2去hbase拿,单次单次取数据大概每次花费10ms,一开始是这样写的
const result = [];
for (const i of keys) {
restlt.push(yield Promise.promisify(hbase.get(i)));
}
如果有1000个key那就是10s, 性能太差。所以后面改成了这种
let result = [];
for (const i of keys) {
restlt.push( Promise.promisify(hbase.get(i)));
}
yield result;
但是所花的时间跟上一种一样,请问promise的并行执行不比顺序执行更快吗? 这种业务场景应该如何处理更好?