草庐IT

promise-style

全部标签

javascript - 如何从 Promise 中提取数据

我有一个返回数据的promise,我想将其保存在变量中。由于异步性质,这在JavaScript中是不可能的吗?我是否需要使用onResolve作为回调?我能以某种方式使用它吗(例如用async/await包装它):const{foo,bar}=Promise.then(result=>result.data,errorHandler);//restofscript而不是这个?Promise.then(result=>{const{foo,bar}=result.data;//restofscript},errorHandler);注意:使用Bluebird库而不是原生实现,我不能从Pr

javascript - 在 Ember Handlebars 模板中呈现已解决的 promise 值

有没有什么好的方法可以在handlebars模板中呈现promise的结果?例如,我有以下模型:App.TopicItem=DS.Model.extend({topic:DS.belongsTo('topic'),paddedPosition:function(){returnthis.get('topic.course.lessons').then(function(lessons){returnlessons.indexOf(topicItem);}).then(function(index){varposition=index;if(position我想像这样在Handlebar

javascript - promise 被拒绝时 AngularJS 服务重试

我正在从我的Controller中的异步服务获取数据,如下所示:myApp.controller('myController',['$scope','AsyncService',function($scope,AsyncService){$scope.getData=function(query){returnAsyncService.query(query).then(function(response){//Gotsuccessresponse,returnpromisereturnresponse;},function(reason){//Goterror,queryagaini

javascript - 用 promises 实现的 debounce 函数

我正在尝试实现一个与javascript中的promise一起使用的去抖功能。这样,每个调用者都可以使用Promise使用“去抖动”函数的结果。这是迄今为止我能想到的最好的:functiondebounce(inner,ms=0){lettimer=null;letpromise=null;constevents=newEventEmitter();//doIreallyneedthis?returnfunction(...args){if(timer==null){promise=newPromise(resolve=>{events.once('done',resolve);});

javascript - Promise.defer() 浏览器支持

我正在寻找一种方法来创建将在当前范围之外解析的延迟对象。我喜欢延迟对象,正如我在Chrome38中看到的Promise.defer()返回延迟对象。但在最新的Firefox34中Promise.defer在Safari8.0中也是未定义的。所以我现在不能到处使用Promise.defer。future状态如何?它会在其他浏览器中实现还是会因为弃用而被删除? 最佳答案 虽然我怀疑这是个好主意,但从技术上讲,您可以基于Promises实现自定义延迟对象。例如:functiondefer(){vardeferred={};varpromi

javascript - Vue单元测试报错: vuex requires a Promise polyfill in this browser

我使用vue-cli创建了一个项目,并在其中添加了vuex和vue-router。我正在尝试为其设置单元测试,但出现以下错误。没有Vuex,它曾经可以工作。PhantomJS2.1.1(MacOSX0.0.0)ERRORError:[vuex]vuexrequiresaPromisepolyfillinthisbrowser.atwebpack:///~/vuex/dist/vuex.js:145:0以下是相关的包版本:"babel-core":"^6.0.0","babel-eslint":"^7.0.0","babel-loader":"^6.0.0","vue":"^2.1.0"

javascript - 在 Parse 云代码中使用自己的 promise

我想保存一个在Parse云代码中随机生成的registrationId,所以我需要检查该值是否已经在数据库中,我必须以递归方式执行此操作,直到获得正确的字符串。到目前为止,这是我尝试过的方法,问题是findRegistrationId()不是一个promise,所以我不能使用then()有没有办法让它成为一个promise或任何其他解决方法?对于云代码functiongetRandomString(){varchars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";varstring_length=4;varrandomstring='';for(var

javascript - 如何将 promise 的返回值分配给变量?

这个问题在这里已经有了答案:HowdoIreturntheresponsefromanasynchronouscall?(45个答案)关闭7年前。已编辑为要复制的评论我引用自:[HowdoIreturntheresponsefromanasynchronouscall?Promisesarecontainersforfuturevalues.Whenthepromisereceivesthevalue(itisresolved)orwhenitiscancelled(rejected),itnotifiesallofits"listeners"whowanttoaccessthisva

javascript - 使用 Jasmine 测试 Angular Promise

以下测试一直失败,我不明白为什么?我正在尝试弄清楚如何使用Jasmine测试延迟/promise。错误Expectedundefinedtobe'ResolvedData'.测试describe('QueuedRepository',function(){varctrl,rootScope,scope,service;beforeEach(function(){module('testApp');inject(function($rootScope,$controller,TestSrvc){rootScope=$rootScope;scope=$rootScope.$new();se

javascript - 将 promise polyfill 添加到 ES6

我有一个用ES6编写的React项目。它是使用Babel编译的并且运行良好。除了我已经知道的仅在IE中起作用的一个promise(许多!)不支持promise。所以我立即想到添加一个polyfill来为IE提供promises,但后来我想“等一下,你已经在写ES6了,难道它不编译到ES5中吗?”谁会比SO更清楚?那么添加诸如es6-promise的polyfill有什么意义吗?我的项目?如果有,我应该如何在语法上使用它?现在我只有导入,但我可能也应该以某种方式实现它?importPromisefrom'es6-promise';另外还有在IE中导致问题的promise,也许我有一个我自