问题标签 [q]
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.
knockout.js - 为什么在 durandal 撰写期间通过微风进行查询时出现 TypeError?
当我的视图和模型被使用 durandal 的 compose 绑定语句绑定时,我从微风和 q.js 收到以下错误。我单独编写了有问题的视图,它工作得很好,直到我尝试用它进行组合绑定,它抛出了这个错误。我尝试将所有自定义属性从我的实体构造函数移动到初始化程序,并推迟对我的计算属性的评估,但这并没有阻止错误。我不确定是哪个框架导致了这个问题,或者我自己的代码是否是。我在我的数据上下文中使用了延迟的 Q 承诺,但我评论它以排除它并返回使用标准回调函数。
错误:
类别树视图.js:
categorytreeview.html
这是我正在撰写失败视图的主视图中的 html:
数据上下文.js
更新1:
我已经排除 Q.js 是一个问题,它只是堆栈中的最后一个人。如果我为 my 分配categoryMapModel()
一个如下所示的初始值,则一切正常。如果我然后单击删除并重新显示此视图的 UI 按钮,则一切正常。activate()
如果我也等待并在durandal 再次调用的方法中设置此变量,那么一切正常。
然而,这个变量是在运行时设置的,当用户点击一个按钮时,我得到了错误。我看到的是,brief.js 没有将自定义属性从我的初始化函数附加到特定实体。正如您从下面的日志中看到的那样,当它击中名为“DVD”的类别实体时,它会被炸毁。由于未知原因,此实体不包含任何自定义属性,例如在初始化函数中定义的isExpanded()
或定义的。在所有实体中,这是唯一没有自定义属性的实体。列表中还有其他实体,它们很好。我看不出任何逻辑为什么微风在这种情况下会对特定实体产生问题,但确实如此。isRoot()
我到底做错了什么/什么会导致微风.js 忽略初始化函数?
javascript - Q 链异步
在这一点上,我与我的同事就链接异步承诺有几个争论。我说它不被 Q 支持,他们说它是但不能给我任何有效的答案。请也许你们可以!
所以这里的问题是:我们有异步!
现在我们有一些函数依赖于其他函数的响应
现在我希望不是这样。我希望我能像这样
显然,第二个版本行不通。
我真正要问的是线性异步操作,是否有可能不发展我自己的死亡金字塔?
爱,
迈克尔
node.js - 使用Q递归生成具有多个子链的链
基本上,我正在尝试建立一棵树,其中每个节点都有对其父节点的引用。我尝试了以下方法:
问题是我需要它一次只创建一个节点,然后等到该节点创建完成,然后才能继续下一个节点。它现在的工作方式是在第一个节点完成之前开始创建一个新节点,这会导致问题。我尝试过以多种方式嵌套函数,并使用 Q.fcall()。我需要为多个子节点返回的 id async_create_node
,否则我只会使用递归。
angularjs - AngularJS 承诺在完成时不会调用 `then` 回调
我有一个类似于主控制器的东西,可以在范围内设置一些东西,所以内部控制器可以使用它。
该设置工作是异步的,所以我将它包装在一个承诺中,但它不会执行它的回调,除非它已经解决(我尝试设置一个断点,如果我等待足够多,它实际上会运行then
回调)。
这是一个用超时而不是网络请求重现我的问题的小提琴:http: //jsfiddle.net/LMv8v/1/
HTML
Javascript
它显示“超时”,但不显示“然后... ”消息。
(我知道这将更适合服务,但我已经有很多嵌套范围的代码,我想在开始重构之前让它工作)
node.js - node.js & promises:常见的做法?
我是新手,node.js
目前正在设置环境,选择我将使用的模块等。在我的研究过程中,我发现了这个Q
模块——由于代码的简单性和结构本身,我真的很感激。我开始搜索一些关于在 node.js 中使用 Promise 的优缺点的讨论。但是,不幸的是,我找不到很多信息。现在我问自己为什么。
你推荐使用promises
withnode.js
吗?或者是否有任何已知的缺点可能会阻止我使用它?
random - 在某个范围内生成均匀分布的随机数
如何使用q生成在某个范围内均匀分布的随机数,即[a,b]?
我找到了一些解决方案,但说真的我不知道如何重写它,因为这些解决方案会生成范围 (0:1] 内的随机数。
javascript - Q - 在调用下一个操作之前等待操作完成
在 datacontext 中的 primeData 调用中,有四个对后端 Web API 服务的查询:
查询 2 和 3 (getDatasetOne() 和 getDatasetTwo()) 依赖于 model.initialize - 这依赖于第一个查询 (getLookups()) 的结果。我想了解如何确保在 getLookups 成功完成之前不调用 model.initialize - 并确保在初始化模型之前不调用 getDatasetOne/Two。我已尽可能减少/简化代码以显示完整图片。显然,我不明白 Q。任何帮助将不胜感激。
控制器:
数据上下文:
模型:
javascript - 我可以在 JavaScript Q 库中做出同步承诺吗?
我想做如下的事情:
所以延迟的实现之前已经演示过很多次了:
但是,如果我在 node.js 中运行上述内容,我会得到:
而不是我期望看到的:
在https://github.com/kriskowal/q/wiki/Examples-Gallery上提供的示例中,我找不到任何与承诺函数链接的同步函数(返回值而不涉及任何回调的函数)的示例。
任何想法如何将同步操作与异步承诺混合在一起?
我试过了:
这输出:
..仍然不是我想要达到的目标。
javascript - 在 Breeze JS 中取消查询
有什么方法可以取消我在 BreeseJS 中运行的查询。我真的不在乎查询是否在服务器端运行,但如果我可以调用一个方法或其他东西来确保它不会调用我使用then分配给 promise 的方法,那就太好了。所以假设我的代码看起来像
以后有什么我可以用 promise 做的,这样它就不会调用我给它的函数then。
node.js - 带有承诺的while循环
用 Promise 做类似 while 循环的惯用方法是什么。所以:
如果条件仍然存在,请做某事再次重复,然后再做其他事情。
我已经这样做了,我想知道是否有更好/更惯用的方法?
输出:1 2 3 4 5 6 7 8 9 10 11 完成