问题标签 [when-js]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 when/node 将 Amazon S3 函数转换为 Promise 时出错
我正在尝试解除 AWS S3 异步功能,并遇到一个奇怪的错误。给定以下代码,
我得到这个错误,
这是getObject
正常的样子(当我使用回调而不是承诺时它工作正常):
我在滥用nodefn.lift
吗?这似乎很简单。这是任何有兴趣的人的文档。https://github.com/cujojs/when/blob/master/docs/api.md#nodelift
javascript - when.js Promise: then() 回调永远不会被调用
我有:像这样的代码片段:
问题:既没有'seccess'
也没有'error'
被调用。
问: 我应该检查什么?
PS我用jasmine
. 所以它可能是then
回调没有时间运行。所以我决定在测试结束时设置 1 秒超时 - 没有结果。
node.js - 何时/节点 liftAll 不适用于 s3 对象
我正在尝试使用when/node
.
但是,看起来请求对象正在被打印出来。我对这里发生的事情有点不知所措,如果我像这样单独提升功能,我可以获得正确的结果:
有任何想法吗?
javascript - 为什么When.js promise.then 跳过一个函数?
有人可以解释为什么以相反的顺序打印吗?
代码:
输出:
PS:我用的是when.js 版本:when@3.4.3
javascript - 当我需要各种返回值时如何使用承诺
我有这个使用承诺并且工作正常的功能:
如您所见,每个函数都返回我需要在下一个函数中使用的值。但我还需要聚合各种返回值,因为这些是解析函数应该返回的值。removeExtermePoints 甚至返回一个对象!
我正在重构 parse 函数的路上,以便当我不确定如何继续时 subFunctions 也使用 Promise。我看起来的代码基本上是这样的:
问题 1
我不再有任何对单个返回值的引用。我假设我可以只使用一个传递给第一个承诺的对象,继续推动它通过以下所有内容,添加值并返回它,但我不确定这是否是获得我所拥有的东西的好方法介意第一个片段吗?
问题2
removeExtremePoints
将一个因素作为输入,我想保持这种状态。我想我可以resolve(3, result)
在createCoordinateAndRGBObjects
? 我真的不喜欢这样,因为突然之间函数createCoordinateAndRGBObjects
决定了我要如何运行removeExtremePoints
,我宁愿在解析体中定义参数。
另外,如果在某个时候我改变了一些东西,也许之后的承诺createCoordinateAndRGBObjects
不适removeExtremepoints
用于另一个用例。我该怎么办?
javascript - Promises:在进度更新次数未知时重构Progress
进度处理程序已在一些领先的 Promise 库(Q、When、Bluebird)中被弃用,并且也已从新的Promises/A+ 规范中删除。虽然我理解取消进度事件背后的原因,但我在重构以下我已经非常习惯的模式时遇到了麻烦:
我已经看到网络上到处出现代码重构示例,但在所有这些示例中,进度更新的数量似乎是事先知道的。在上述模式中,可能发布的进度更新数量是不确定的。
有人可以在不使用进度事件/处理程序的情况下帮助我实现上述模式吗?
javascript - 如何根据JS文件是否返回null的字符串隐藏和显示XSL文件中的表行
内容是从声明增强详细信息的 javascript 函数中提取的,并在节点类型中获取。我想要在未选择增强详细信息并且它返回 null 时的条件。所以它的行将消失。
XSL 文件
javascript - 级联承诺
任何超出简单承诺的事情通常都会让我感到困惑。在这种情况下,我需要对 N 个对象连续执行 2 次异步调用。首先,我需要从磁盘加载一个文件,然后将该文件上传到邮件服务器。我更喜欢一起做这两个动作,但我已经通过首先完成所有读取和所有上传来让它工作。下面的代码有效,但我不禁认为它可以做得更好。我不明白的一件事是为什么 when.all 不拒绝。我对文档的解释似乎暗示如果其中一个承诺拒绝,.all 将拒绝。为了测试错误,我已经注释掉了较低的解析。没有错误,事情似乎工作正常并且有意义。
javascript - 如何将 when.map 与 node.lift-ed 功能一起使用?
我正在使用when.js
库学习承诺,使用when.map
nodefs.readFile
让我觉得我错过了一些东西。
foo
Promise 在作为单个 Promise 调用时可以正常工作,但在用作映射器函数时会失败,when.map
因为 index 作为第三个参数注入(然后回调作为第 4 个参数传递)。
API doc 说when.map
映射器函数需要有两个参数。那么 mapper 函数可以写成bar
,它可以在任何上下文中工作。
有没有更优雅的方法来编写bar
函数?