问题标签 [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 投票
4 回答
3808 浏览

javascript - 如何从这个 jsFiddle 动态添加延迟到承诺?

关于这个 jsFiddle,我正在尝试动态添加一个在事件触发时创建的“延迟”,因此只有在解决所有延迟时才调用 done 回调,包括稍后添加的回调:

相关代码:

更新:欢迎使用 Q 或 jQuery 的建议,我正在寻找一个可行的

0 投票
2 回答
389 浏览

jquery - 如何将 jQuery.when() 与多个 jsonp 请求一起使用?

我有 2 个跨域 jsonp 请求需要先完成,然后才能执行另一种方法。所以我尝试了 $.when() 函数

getX() 和 getY() 使用单独的 jsonp 回调向两个不同的域发出 $.ajax() 请求。

与我最初的想法相反,createXY() 在回调返回之前被调用。createXY() 因此没有它需要的数据。

有人可以为我提供一个在完成多个异步 jsonp 请求时调用函数的示例吗?

0 投票
1 回答
402 浏览

node.js - 使用 when.js 如何将 Promise 转换为 Node.js 样式的回调?

我正在使用 IcedCoffeeScript。

我想写这个:

User.find(id).always esc done或者await User.find(id).always defer e, user

Promise#alwayswhen.js.

还有其他方法吗?

0 投票
2 回答
487 浏览

javascript - 将节点异步代码转换为 Promise

我正在试验 promises - 即 when.js - 并且想要转换一些测试代码 - 即使在阅读文档之后也不清楚如何做到这一点。到目前为止,我的实验比标准的回调金字塔要混乱得多,所以我认为我缺少一些捷径。

这是我想复制的示例代码:

0 投票
1 回答
555 浏览

javascript - cujojs 中的 when.all() 2.2.1 如果一个延迟被拒绝,则不会拒绝

当文档说应该拒绝时,我无法弄清楚为什么要履行承诺。

打开http://jsbin.com/orifok/5/edit并点击 go 按钮,当它应该提示“失败”时它会提示“ok”。

替换when221.all...deferred2.promise.then(stepFulfilled, stepRejected);并发生拒绝。

我确实对 when.js 代码进行了修改以使 when221 变量成为全局变量,而不是需要依赖于 require.js 库(参见http://pastebin.com/J8wCqjWM与原始https://github.com的比较/cujojs/when/blob/2.2.1/when.js)。

when.all() 文档说:如果任何承诺被拒绝,则返回的承诺将被拒绝,并以被拒绝的第一个承诺的拒绝原因 - 请参阅https://github.com/cujojs/when/blob/master /docs/api.md#whenall

0 投票
3 回答
1291 浏览

javascript - Q.js 的“done()”的 when.js 等价物是什么?

除了then(),Q.js 还有一个done(). done()通常在 Promise 链的末尾调用,如下所示:

这将捕获前一个 s 未处理的任何拒绝,then()并将处理then()s 回调中引发的任何异常。

when.js中有类似的东西吗?你如何处理回调中引发的异常?如果你从不注册拒绝处理程序怎么办?

0 投票
1 回答
175 浏览

javascript - 清理承诺(扁平化和错误处理)

我正在使用该when库并有一些这样的代码:

该代码具有合理的可读性,但逻辑是:

  1. 确保 eventId 有效
  2. 获取图像表
  3. 上传图片到 S3

所有这三个都可以同时发生。第 1 步和第 2 步都共享相同的“database.then”,所以我想使用它,但我不知道如何扁平化承诺。

如果有任何问题(包括 eventId 无效),我应该打电话elib.deleteFromS3('image_uploads/' + id);

如果这一切都成功,我准备通过在数据库中添加一个新条目来“提交”: images.insert({ _id: id, size: pic.size })

如果这行得通,我们就完成了。如果没有,我仍然需要再次从 S3 中删除。

在满足错误处理和'database.then'重用的同时保持可读性的任何帮助将不胜感激。

0 投票
2 回答
828 浏览

javascript - 在 requirejs 中正确加载依赖项(autobahn 和 whenjs)

在过去的几个小时里,我一直被困在这个问题上。我正在尝试让 autobahnjs 和 whenjs 由 requirejs 正确加载。

Autobahnjs 依赖于 whenjs。所有文件都已加载(并以正确的顺序)。但是什么时候总是不确定的。我完全不知道我做错了什么。我已经尝试了各种方法来解决它。如果这有助于任何人复制问题,我也有一个bower.json文件。提前致谢。

编辑:Autobahnjs 目前不支持 AMD。然而,Whenjs 确实支持它。

0 投票
1 回答
489 浏览

javascript - 将 whenjs 与 requirejs 一起使用

我无法将requirejs与whenjs一起使用,它在运行站点时会出现有关丢失文件的404错误。我正在按照whenjs README中的说明进行操作:

首先,我git submodule add https://github.com/cujojs/when在项目根目录中运行。

然后我在以下位置执行“使用包配置加载程序” app/public/js/main.js

这留下以下目录布局:

需要whenjs的文件(myhelper.js)有:

这会产生错误

GET http://localhost:4580/js/when/when.js 404 (Not Found)

我尝试将 js 文件从复制project-root/whenapp/public/js/libs/when

并使用以下代码:

产生相同的错误:

GET http://localhost:4580/js/when/when.js 404 (Not Found)

似乎其中的任何内容myhelper.js都忽略了packages声明-我不确定是否还有其他我应该做的事情?whenjs 指令没有说。

我试过这个:

这不会产生和错误 - 虽然我还没有尝试使用该库......</p>

Requirejs 的版本是 v2.1.8,我已经阅读了有关包的 API 说明,但我并不聪明。这是什么意思 whenjs 指令在这里不起作用?我也尝试过其他设置组合,例如组合pathsandpackages选项,但无济于事。

这不是一个仅 Node 或 javascript 的项目,因此不能选择剧烈移动目录。

任何帮助深表感谢。

0 投票
1 回答
102 浏览

javascript - 如何通过 ajax 将这个惰性赋值转换为 Promise?

我看了这个关于缓存的问题和这个关于条件承诺的问题,但老实说,我仍然有点困惑,因为我以前从未使用过承诺。

我正在使用when.js v2.5.1和 jQuery v2.0.3。我正在尝试将以下代码转换为承诺(coffeescript 中它更清晰,所以我会坚持下去,但随时用 javascript 回复)

像这样称呼:

所以,我知道我想回报一个承诺。我知道 jQuery 的 xhr 是可延迟的并且实现了 Promise API Something,所以我可以做这样的事情吗?

因为无论返回什么都可以then调用它……?

任何帮助深表感谢。