gpt4 book ai didi

javascript - 我怎样才能加快这一系列的 promise ?

转载 作者:行者123 更新时间:2023-12-02 17:20:53 25 4
gpt4 key购买 nike

我的 Node 服务器处理了以下 HTTP 请求。我必须发回磁盘列表作为响应。

代码是:

DiskPromise.getDiskCount(client).then(function (diskCount) {
DiskPromise.getDisks(client, diskCount).then(function (disks) {
RaidPromise.getRaidCount(client).then(function (raidCount) {
RaidPromise.getRaidArrays(client, raidCount).then(function (raidArrays) {
for (i in disks) {
disks[i].setRaidInfo(raidArrays);
}
RaidPromise.getGlobalSpareList(client).then (function(spareNames) {
for (i in disks) {
disks[i].setSpareNess(spareNames);
}
res.json(disks);
}, function (err) {
console.log("something (either getDiskCount, or one of the getDisk calls) blew up", err);
res.send(403, { error: err.toString() });

});
});
});
});
});

promise 是 SOAP 调用。客户端需要 4.5 到 7.0 秒的时间才能收到响应。

我在布局代码时是否做了一些结构上错误的事情?

最佳答案

分析您的代码意味着获取磁盘、raidArray 和备用名称的微不足道的并行化机会。性能大幅提升

var disks = DiskPromise.getDiskCount(client).then(function (diskCount) {
return DiskPromise.getDisks(client, diskCount);
});
var raidArrays = RaidPromise.getRaidCount(client).then(function (raidCount) {
return RaidPromise.getRaidArrays(client, raidCount);
});
var spareNames = RaidPromise.getGlobalSpareList(client);

Promise.all([disks, raidArays, spareNames]).spread(function(disks, raidArrays, spareNames) {
for(var i in disks) {
disks[i].setRaidInfo(raidArrays);
disks[i].setSpareNess(spareNames);
}
res.json(disks);
}).catch(function(err) {
console.log("something (either getDiskCount, or one of the getDisk calls) blew up", err);
res.send(403, { error: err.toString() });
});

关于javascript - 我怎样才能加快这一系列的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23964211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com