问题标签 [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.

0 投票
2 回答
214 浏览

javascript - 用 then() 链式承诺

我正在对我的节点样式回调使用when承诺库并承诺它们......lift()

我想调用链​​中的函数,如下所示:

但是在调用第二个回调函数时它给了我一个错误:

未捕获的类型错误:未定义不是函数

callback该错误是指twoFn(callback).

将这些功能链接在一起并一个接一个地执行的正确方法是什么?

0 投票
2 回答
2170 浏览

javascript - 在解析之前返回的延迟对象

我正在使用带有 Node js 的 when 库。我创建了一个延迟对象,将解析放在封装的 Mongoose findOne() 函数中,然后在外面返回承诺。但似乎我的承诺总是在检索数据之前返回。

呼叫者

'returning promise'之前的输出data

0 投票
1 回答
89 浏览

javascript - 控制 `.then()` 回调何时触发

我有一长串的承诺贯穿我的代码模块。我事先不知道我会完成多少个承诺,也没有从任何一个承诺到任何其他承诺的范围(这意味着我不能做 a Promise.join())。

我的问题是我then()在这个链上的多个 Promise 上附加了回调。我怎样才能控制最后解雇哪一个?

更新:这是一个简化的示例:

我的问题是.then()inaFn().then(anotherFn)之前被调用过bFn().then(someFn)

以下是一些有助于说明我的问题的代码片段:

策略.js

},

store.js

// 只是一个包装同步 get 的代理函数 get: function (key, options) { return this.getItem.apply(this, arguments); },

商店-helpers.js

在应用程序的一个非常不同的部分,我也有:

我希望.then()最后触发上述内容,但是.resolve在触发store-helpers.js.then()时,会调用最后一个回调。

0 投票
1 回答
1366 浏览

javascript - 捕获 when.js 未处理的拒绝

我想捕获 when.js 未处理的拒绝,以便我可以记录它们。为了实现这一点,我重写了 console.warn(),但是它可以记录除 when.js 之外的我不感兴趣的东西。

参考:https ://github.com/cujojs/when/blob/master/docs/api.md#debugging-promises

我在 when.js https://github.com/AriaMinaei/pretty-monitor中使用prettymonitor

0 投票
0 回答
541 浏览

node.js - 在 Node.js 中处理未处理的拒绝

跟进问题。捕获 when.js 未处理的拒绝

Node.js process.on() 示例阻止显示正常的控制台/prettymonitor 输出。有没有办法保留这个。文档还显示: process.on('unhandledRejection', function(reason, key) not ..(promise,reason). ref: http://github.com/cujojs/when/blob/master/docs/debug- api.md

0 投票
1 回答
97 浏览

javascript - 有没有办法从 Jquery Deferred/Promise 到 When-JS Promise

我想在 jquery ajax 调用返回的承诺之外使用 When-JS 功能。有转换方案吗?

编辑 1

https://github.com/cujojs/when/blob/master/docs/api.md#api

0 投票
0 回答
199 浏览

node.js - 使用 reqwest 以及何时进行远程调用

我正在使用 nodejs 模块 reqwest 并且何时进行远程调用并且返回的承诺是失败的。

当我使用邮递员提交相同的请求时,我得到了回复。

我不确定为什么承诺被拒绝。

这是我的代码。

谢谢

0 投票
2 回答
1031 浏览

javascript - Node.js/Javascript - 嵌套的 promises 和 for 循环 with when.js

我目前正在努力处理承诺的控制流程(承诺新手!)。

我调用了返回一个数组对象的 Redis。然后,我遍历每个结果并回调 Redis 以获取一个值,并希望将这些填充到最终对象out中。

out 对象永远不会被填充,我猜测 forEach 尚未完成:

(注意 Redis 客户端库默认返回基于 when.js 的承诺)

如何保证 forEach 循环是完整的?

我已经阅读了许多类似的帖子(我知道这是重复的)但是无法理解为什么内部的 done() 方法不包含完整的outobj。

我猜我需要将 forEach 本身包装在一个承诺中?欣赏任何方向。


更新 1:非常感谢@David_Aurelio。我现在需要填充out键和值。这是我的尝试:

内部 console.log 打印正确的键/值

最后完成的现在打印:

0 投票
1 回答
202 浏览

ajax - Jasmine AJAX 模拟将字符串转换为数组

我正在尝试围绕我的 AjaxRequest 类编写一个测试套件,但是当我尝试检查请求正文时,我得到了这个测试失败

这是单元测试的相关位:

run()是发出ajax请求的方法

我正在使用reqwest发出 ajax 请求。

有人可以指出为什么在 json 正文中['text']发送请求时会期待它吗?'text'

谢谢!

0 投票
1 回答
76 浏览

javascript - `when(foo, f)` 和 `when(foo).then(f)` 有什么区别

我正在查看一些使用when.js. 出现几次的模式是:

我想他们when在这里使用的原因是他们当时不确定是否someBigFunction()会返回承诺。

在语义上,上述内容和:

通常,示例不使用 promise 的返回值(也就是说,它function() {不是function(x) {)。

API 文档提供了这个:

  • when(x,f):通过将 x 转换为 f 来获得可信的 Promise
  • then:通过将函数应用于承诺的履行价值来转换承诺的价值。

所以我怀疑没有区别,但也许我错过了一个微妙之处?