问题标签 [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 - 解析 .each() 在 when() 内不起作用
不工作。记录“已处理的 x 个用户”,但从不记录“到达这里”。承诺应该在 when() 调用期间执行,但永远不会执行。
这绝对没有意义,因为我看到的每一篇描述何时都写成这样的帖子。出于某种原因,这只是没有做任何事情。
jasmine - 用 Jasmine 惯用地测试 when.js 的 promise
when.js
我正在为返回承诺的代码编写一些 Jasmine 单元测试。我不断发现自己在编写这样的代码:
捕获异常的唯一方法是使用函数(它是when.jsotherwise()
的旧版本),然后似乎没有 Jasmine(2.0)函数来表示“检测到故障” - 因此是 kludgy “ ”。expect(true).toBe(false)
有没有更惯用的方式来做到这一点?
promise - when - 带有中间错误的意外 Promise 链
我想知道以下是否是正常行为?
代码
这是我运行时收到的输出
阅读 API,我期望会调用第 1.1 步,然后调用第 9 步而不是第 2 步。
这是一个错误还是我误读了 API?
感谢您的提示!
node.js - 猫鼬与诺言不同
我使用 when.js 作为 mongoose 的承诺库,并尝试获取不同的集合字段并将结果作为承诺返回
但是 getPromisedDistinct 是用 promise 函数解决的
编辑 #1 getPromisedDistinct 被称为
为什么这不解决价值?
callback - 如何从 when.js 承诺中干净地提取回调?
我需要将回调传递给签名为function('ui', {foo: bar, callback: callbackfn})
. 我要传递的函数是一个When.js 承诺。
我想出的最好的:
这有效(使用延迟来防止立即执行,然后将resolve
函数作为回调传递),但似乎有点令人费解。
有没有更清洁的方法?
promise - 在不引发错误的情况下中止承诺链
使用 When.js,由于用户改变主意,我们想要在中途悄悄中止承诺链。我们当前的方法是根本不解决链中的那一步——实际上让其他承诺“悬而未决”。这似乎有点脏?
如果我们拒绝承诺,那么我们的异常处理程序当然会启动。我们可以解决这个问题,使用我们检测并忽略的自定义消息,但这似乎也有点不干净。
有更好的方法吗?
这是代码的样子:
结果
为了完整起见,我将代码更改为:
和
javascript - 等待 d3 加载
我正在使用d3创建一个饼图来加载饼图 -
这很好用,但是我希望在饼图完全渲染后做逻辑。
我曾尝试像这样使用when
done
逻辑(例如在进行 ajax 调用时)-
然而,这不起作用,因为即使馅饼没有完全加载,它也只是进入 when 子句。我怎样才能做到这一点?
javascript - 为什么 Angular 2 的模板没有从角度区域外的调用中更新?
我想我会创建一个非常简单的登录表单,其中包含组件绑定的用户名和密码属性,这些属性将通过以下步骤运行:
- 使用 fetch() 调用提交凭据
- THEN获取Response结果对象的JSON内容
- 然后检查该内容以获取服务器端检查的结果
如果凭据错误,它将更改一个组件属性,该属性会告诉 Angular 将一个类应用于用户名和密码输入以使它们暂时变为红色(使用 setTimeout 将其改回)
我遇到的问题是 Angular 无法正确应用该类,我不知道为什么。我决定创建一个简化的测试项目来缩小问题范围,最终导致包含 system-polyfills/when.js。
此代码依次经过 1、2、3,并将其设置在组件属性中并将其输出到调试控制台。Angular 会正确渲染组件属性,除非包含 system-polyfill,在这种情况下,它将停止在 1 并且永远不会将其更改为 2 或 3,即使控制台显示该属性实际上已更改:
我创建了以下 Plunker 来演示这种行为: http ://plnkr.co/edit/GR9U9fTctmkSGsPTySAI?p=preview
是的,显而易见的解决方案是:
- 不要手动包含系统填充物,或
- 如果需要,在 SystemJS 之前手动包含不同的 Promise polyfill
但我仍然很好奇为什么会发生这种情况,希望有人能对此有所了解(并可能有助于解决基本问题)。
编辑:这个的原标题是Why is Angular 2's template rendering misbehaving when using system-polyfills (when.js)
。感谢 Thierry 和 Günter 的贡献并指出 Angular 2 对区域的使用在这里发挥了作用。对于将来遇到这种情况的任何人,这里有两篇优秀的文章,它们更详细地解释了区域,并且在您遇到这种情况时将增强您对这种情况的理解:
javascript - 从 when.js 迁移到 ES6 Promises
我一直在使用 when.js 作为 node.js 中的 Promise。我有如下功能:
我会这样称呼:
我如何使用 ES6 Promises 做同样的事情?