gpt4 book ai didi

javascript - 如何按顺序执行promise并返回所有结果

转载 作者:行者123 更新时间:2023-12-02 23:36:01 27 4
gpt4 key购买 nike

我对 Promise 很陌生。我已按顺序查找了执行 Promise 的示例,但没有找到与我的应用程序类似的示例。

我的问题是我想按一定顺序解决 promise ,但还要捕获 promise 解决时的所有结果。通过查找示例。我创建了该问题的简化版本。

我能够创建一个函数 doWork(),但问题是它所做的只是按顺序解决 Promise,而不捕获结果。

理想情况下,我想要一个返回一个 promise 并解决所有结果的函数。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<script>
function getRandomInterval(min, max){
var random = Math.random() * (+max - +min) + +min;
return random;
}

function createPromiseReturningFn(input){
return function(){
return new Promise(
function(resolve, reject){
setTimeout(function(){
// console.log(input);
resolve(input);
}, getRandomInterval(0, 100));
}
);
}
}

var promises = [];

for (var i=0; i<10; i++){
promises.push(createPromiseReturningFn(i));
}

function doWork(){
if (!promises.length)
return;
var promise = promises.shift();
promise().then(
doWork
);
}

doWork();
</script>
</head>
<body>

</body>
</html>

最佳答案

尝试使用异步函数并在 for...of 循环中迭代 Promise:

Resolve promises one after another (i.e. in sequence)?

关于javascript - 如何按顺序执行promise并返回所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56296979/

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