草庐IT

promise-style

全部标签

javascript - 使用嵌套的 Promise 编写干净的代码

我正在编写一个与Apple对话以验证收据的应用程序。他们有一个沙盒和生产url,您可以发布到。与Apple通信时,如果您收到21007状态,这意味着您正在发布到生产url,而您应该发布到沙盒url。所以我写了一些代码来简化重试逻辑。这是我的代码的简化版本:varrequest=require('request'),Q=require('q');varpostToService=function(data,url){vardeferred=Q.defer();varoptions={data:data,url:url};request.post(options,function(err,

Javascript promise 不等待解决

我以为我对promises有很好的理解,直到我遇到了一个问题,下面是一个简化的代码片段。我的印象是console.log调用会输出firstsecondthird,但结果却是secondthirdfirst。谁能解释为什么第二个和第三个promise无需等待第一个就可以继续。varQ=require('q');(function(){varObj=function(){functionfirst(){vardeferred=Q.defer();setTimeout(function(){console.log('inthefirst')deferred.resolve();},200)

javascript - 在下一个请求之前等待 $http promise

我正在开发一个angularJS应用程序,这是我使用这个框架的第一个网站。在我的应用程序中,我需要在for循环内进行$http调用。在下一次迭代之前的循环中,我想等待上一次调用的响应。什么是最好和最简单的方法来做到这一点。我已经尝试使用回调,$q.all(),.then在所有这些中只有最后一个请求正在通过。请帮忙。注意:我通过$http调用的API无法对请求进行排队。编辑:我已经尝试了以下两种方法,在这两种情况下,只有最后一个请求被成功发出。你能告诉我我在这里做错了什么吗?方法一:varpromiseArray=[];for(vari=0;i方法二:varpromises=[];for

javascript - 是否有针对强类型语言的 promise 规范?

Promises/A+spec非常适合实现promises,但它大量使用了Javascript的弱类型。是否有针对C#等强静态类型语言设计的Promises规范? 最佳答案 许多语言都有promises,它们是并发的有用且基本的构建block。他们中的许多人都将promise作为其基类库的一部分内置。C#的TaskScala的Future[T]Java8CompletableFuture.Python的Future.(虽然不是静态类型)。Haskell的IOa.clojure的promise.达特的Future.C++的std::f

javascript - Angular Run Block - 使用 UI-Router $stateProvider 来解析 Promise

UI-Router不同于Angular的ngRoute。它支持普通ngRoute可以做的所有事情以及许多额外的功能。我正在将我的Angular应用程序从ngRoute更改为UI-Router。但我不太清楚如何以编程方式注入(inject)resolve函数-我在Controller和config之外使用的代码片段。因此,使用标准Angular的ngRoute我可以在Angular运行中动态注入(inject)我的resolvepromiseblock:app.run(function($route){varroute=$route.routes['/'];route.resolve=r

javascript - 为什么 jQuery 的 promise 有一个 done(),而 Mozilla 记录的 Javascript 的 promise 却没有?如果我想在 JS 中有一个 done() 怎么办?

Mozilla的JavaScript文档的Promises(参见APIpage)和jQuery的Promises(参见APIpage)之间有什么区别?Mozilla的promise好像只有2个方法:then和catch。jQuery的promise好像有更多的方法,包括:then、done、fail。(fromhere)为什么Mozilla上的JSAPI没有done()?如果我想在JavaScript中使用done()功能怎么办?我该怎么办? 最佳答案 Mozilla的javascriptpromise基于ES6standard,而

javascript - 将 co 库与 promises 一起使用而不是与 thunks 一起使用有什么好处?

所以我一直在阅读有关co的用法的信息库,我在大多数博客文章中看到的一般设计模式是包装在thunk中具有回调的函数。然后使用es6生成器将这些thunk生成到co对象。像这样:co(function*(){vara=yieldread(‘Readme.md’);varb=yieldread(‘package.json’);console.log(a);console.log(b);});functionread(path){returnfunction(done){fs.readFile(path,‘utf8',done);}}我可以理解,因为它带来了promise的所有好处,例如更好的

javascript - 在 $.ajax Success 方法中拒绝 jQuery Promise

这可能是一个愚蠢的错误,但这里有。我需要在$.ajax()调用的成功函数中拒绝jQueryPromise。返回值“success”为bool值。functiondoSomething(){varmyPromise=$.ajax({method:"POST",url:"/url/to/use",data:{"value":$("#value").val()},success:function(data){if(data.success==false){ConfirmMessage.showErrorMessage(data.messages[0]);returnnew$.Deferred

javascript - promise.all 在 forEach 循环中——所有东西同时触发

在Node应用程序中,我需要以同步方式遍历某些项目,但循环内的某些操作是异步的。我的代码现在看起来像这样:someAPIpromise().then((items)=>{items.forEach((item)=>{Promise.all[myPromiseA(item),myPromiseB(item)]).then(()=>{doSomethingSynchronouslyThatTakesAWhile();});}}当items是1的数组时,这会产生奇迹。但是,一旦有多个项目,promise.all()将立即触发每个数组中的项目,无需等待循环中的操作结束。综上所述...我如何确保

javascript - 为什么需要立即使用我的 ES6 Promise Rejection 以避免出现控制台错误消息?

请注意:以下是在不同浏览器中表现不同的问题。所以也许这是一个浏览器实现问题。无论如何,我都希望得到一些建议。在我的应用程序中,我创建了几个promise,我可能要等到future相当长一段时间才会使用这些promise。这应该没问题,毕竟它们是promise。如果存储的promise已解决,则没有问题。我可以在未来尽可能多地使用它,并且可以多次使用它。正如预期的那样。但是,如果被存储的promise被拒绝,就会出现问题。除非我在做出拒绝后不久(不确定多快)使用该拒绝,否则Chrome或Firefox中会弹出一条控制台消息,指示存在未捕获的promise拒绝/错误。IE不会弹出该错误。因