javascript - 如何多次动态计算来自多个地方的结果?取消 Promise.All()
问题描述
有一个搜索字段和结果。
我需要根据搜索字段中的查询动态搜索来自多个地方(插件)的结果。
我有一个方法:
async onQuery(query) {
await Promise.all(
plugins.map(async plugin => {
return await getSomeDataFromPlugin(query, plugin).then(appendResults)
});
);
}
我现在的问题是我有几个重复的结果。因为之前的结果还没有计算出来,我们已经在计算新的了。
例如:
我们
p
在搜索字段中输入并从getSomeDataFromPlugin
方法中获取结果(按首字母搜索):['play', 'pause']
我们进入
pa
并得到['pause', 'play from another place with a long response']
;
但预期只是['pause']
;
Promise.all
如果我们有一个新的查询,是否有可能以某种方式取消所有以前的?
解决方案
推荐阅读
- node.js - 尝试使用 npx create-react-app 创建反应应用程序时出错
- python - 如何将火花数据框中的所有列值连接成 Python 中的字符串?
- c - 我必须如何使用 rand_r()?
- python - 从下拉列表中选择值 - Python Webbot
- numpy - 如何将填充 RGB 图像归零?
- powershell - 从 Msi 文件/SELECT * 从 msi 表/InvokeMember 中读取多个值,在 Powershell 中使用 5 个参数“OpenView、Sql”
- reactjs - 当 react 组件包含函数时 containsMatchingElement 返回 false
- javascript - 等待 $(document).ready、$(element).ready 和 windows.load 都在内容准备好之前触发
- c - 如何在Windows下使用cmake和MinGW编译C接口LAPACKE?
- javascript - 如何获取用户被重定向的页面