我对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...循环中迭代promise:
一个接一个地解决promise(即按顺序)?
我在试用GraphQL。我从postgresql中提取数据,除了一个问题,解析在查询完成之前就完成了,其他一切似乎都能正常工作。我以为我的查询承诺工作正常。这里是我为查询数据库而创建的类: 下面是我的graphql查询: 我注释了我的结果,只是想了解一下返回静态内容的情况,结果似乎在then()内时不会返回到graphisql(这意味着在then()之前完成的解析)。输出: } 我可以通过将静态返
原文是这样的: 这确实令人惊讶,但最终明白了(嗯,至少我想我明白了)为什么会这样发生。 现在,我将第二个更改为: 如果我遗漏了一些明显的东西,或者我的问题是愚蠢的,让我提前说声对不起。还有谢谢你!
问题内容: 我有一张桌子,里面有人和他们拥有的汽车 该查询为我提供了和拥有完全相同的汽车以及Lisa本人的人,这很好。 结果: 如果我想查找所有拥有相同汽车的人,请重新运行查询,结果应为我。 现在,我有一个Java名称列表,对于每个名称,我都运行此查询。真的很慢。无论如何,是否可以找到所有拥有相同汽车的人,并在单个数据库调用中将结果划分为组? 例如,使用第一个表。我可以运行将名称分组的查询。请注意
我正在创建,比如说,15个Callable任务,并提交它们: 然后我收集15个MyResult对象: 问题是:我没有从get()方法获得所有15个MyResult对象,而是有时获得不到15个对象。有时12有时10有时甚至更少,有时全部15。 我的印象是,方法是一个阻塞调用,将等待所有15个线程返回各自的结果,但看起来我错过了其中的一些线程并继续前进。我做错了什么?我是否未正确收集结果/等待结果?当
在我的示例项目中,我尝试在应用程序启动时做一些初始化工作。 Java 16 Vertx 4.1.0 检查完整的项目代码。 但它并没有像预期的那样工作。 没有像Reactor那样的方法 我找不到一种有效的方法来按顺序执行它们。 更新时间: 我按照建议更改了代码。 并在控制台中获取以下日志。 如何在输入打印结果之前确保插入块中的所有未来都已完成。
我有下表,其中包含PostID和到rootPostId的映射 我有以下疑问: 返回结果: 我希望返回以下内容,以便返回的第一个postId是传递到查询中的相应postId(postId=2),如下所示。 返回所需结果: