91得票2回答
承诺后的返回值

我有一个JavaScript函数,我想在return方法执行后返回获取的值。 比解释更容易理解。function getValue(file){ var val; lookupValue(file).then(function(res){ val = res.va...

87得票5回答
如何检查 Angular $q Promise 是否已解决

我知道通常使用promise时,人们会通过then()调用连接连续代码并链接行为。 但是,我想启动一个被包装成promise的异步调用,然后单独启动一个3秒的$timeout(),以便在原始promise尚未完成的情况下执行UI操作(我预计这只会发生在慢速连接、3G移动设备等情况下)。 给...

86得票2回答
在渲染方法中使用 promises 渲染 React 组件

我有一个组件,它通过props获取项目的集合,并使用map将它们映射为组件的集合,这些组件作为父组件的子元素呈现。我们使用存储在WebSQL中的图像作为字节数组。在map函数中,我从项目中获取图像ID,并异步调用DAL来获取图像的字节数组。我的问题是,我不能将promise传递到React中,...

82得票14回答
使用Promise的while循环

如何用惯用方式实现类似于Promise的while循环? 如下: 执行某些操作 如果条件仍然满足,请再次执行它 重复以上步骤 然后执行其他操作。dosomething.then(possilblydomoresomethings).then(finish) 我用这种方式做了,想知道是否有更好...

47得票1回答
jQuery $.Deferred(jQuery 1.x / 2.x)固有的问题

@Domenic写了一篇非常详细的关于jQuery延迟对象失败的文章:你错过了Promise的重点。在这篇文章中,Domenic强调了与其他Promise库(包括Q, when.js, RSVP.js和ES6 Promise)相比,jQuery Promise存在一些缺陷。 我从Domeni...

36得票3回答
如何使用Q正确地中止Node.js的Promise链?

我正在使用Q模块来避免在有多个步骤的情况下出现“回调地狱”。比如:function doTask(task, callback) { Q.ncall(task.step1, task) .then(function(result1){ return Q.ncal...

36得票4回答
在Q中定义空的Bluebird承诺。

使用Q,我可以通过以下方式定义一个新的 Promise:var queue = q(); 但是如果我使用Bluebird,我会这样做:var queue = new Promise(); 我理解为:TypeError: the promise constructor requires a re...

35得票3回答
如何等待承诺被解决?

我正在处理一个需要特定函数为同步的Node.js框架,但我需要异步访问才能获取值。在理想情况下,我可以返回Promise,但我不能这样做。为了快速解决问题,我创建了以下方法:exports.synchronizePromise = function(promise) { var val...

34得票4回答
如何在Q中链接变量数量的Promise以按顺序执行?

我看过 在 Q 中链接任意数量的 promises;然而我的问题不同。 我该如何进行可变次数的异步调用,并按顺序返回每一个调用的结果? 场景是一组 HTTP 请求,其数量和类型由第一个 HTTP 请求的结果决定。 我希望能够简单地实现这个功能。 我还看过这个回答,其中提出了这样的建议:var ...

34得票3回答
使用jQuery或Q.Js来处理承诺(promises)

我正在研究 BreezeJs,它们的示例使用Q.js来处理异步调用的承诺。 John Papa也在使用Q. JQuery也有promise。这两者之间有什么区别?