草庐IT

javascript - 我如何解决 AngularJS 单元测试中的 promise

我正在使用基本的karma/jasmine设置来测试我的Angular代码。这是我的测试:var$controllerConstructor,ctr,mockSuperheroData,scope,deferred,q;describe('maincontroller',function(){var$controllerConstructor,ctr,mockSuperheroData,scope,deferred,q;beforeEach(inject(function($controller,$rootScope,$q){scope=$rootScope.$new();$contr

javascript - 避免延迟反模式

这个问题在这里已经有了答案:WhatistheexplicitpromiseconstructionantipatternandhowdoIavoidit?(3个答案)关闭7年前。我有一些看起来像这样的代码:functionfoo(){vardeferred;deferred=q.defer();doSomethingAsync().then(function(result){varresultTransformed=doSomethingSynchronousToTheResult(result);deferred.resolve(resultTransformed);});retu

javascript - 取消 promise 链?

我链接了一系列的promise:this.getData.then(this.getMoreData).then(this.getEvenMoreData);在某些时候,用户可能会决定取消请求并请求其他内容。如何取消链的传播? 最佳答案 您必须检查每个链接方法内的状态(是否应取消):varuserRequestedCancel=false;this.getData().then(function(){if(userRequestedCancel){returnPromise.reject('usercancelled');}retu

javascript - 在 ES6 + babel 中使用 bluebird promise 导入类(构造函数)

假设我创建了一个node.js库lib.jsexportclassC{constructor(value,callback){callback(false,`Hello${value}`);}task(value,callback){callback(false,"returned"+value);}}重要的部分是类的构造函数需要接受回调,因为它处理数据库连接和文件I/O。如果我现在导入并使用库回调样式,一切都很好(请参阅下面的c1)。我真的很想promise我使用它的库,使对象构造更方便(实际上它是一大堆类和方法)。但是,我找不到在promise-safe中正确地new类的方法。im

javascript - for循环(每次迭代都会产生一个 promise )完成后如何返回单个 promise ?

我的promise返回代码有问题,我有一个函数getTagQuotes,它包含一个for循环,它可以多次调用API以将数据返回到数组中。我的代码是如何开始的://Iftherearetags,thenwaitforpromisehere:if(tags.length>0){//SettingpromisevartogetTagQuotes:varpromise=getTagQuotes(tags).then(function(){console.log('promise=',promise);//Thisarrayshouldcontain1-3tags:console.log('tw

javascript - Node JS Async Promise.All 问题

我正在尝试对从数据库中获取的列表中的一堆项目执行异步例程,但我无法理解promise.all的工作原理和作用。这是我现在使用的代码:/***Queuesuppriceupdates*/functionupdatePrices(){console.log("~~~NowupdatingalllistingpricesfromAmazonAPI~~~");//Grabsthelistingsfromthedatabase,thispartworksfinefetchListings().then(function(listings){//Createsanarrayofpromisesfr

javascript - HTTP Promise - 处理错误

我正在尝试找到一种很好的方法来处理我认为是错误的HTTP响应。我在ReactNative中使用fetch。这是我的代码。loginRequest(url){returnfetch(url,{method:'post',headers:{'Content-Type':'application/x-www-form-urlencoded;'},....}).then(response=>{returnthis.processResponse(response);});}然后……processResponse(response){if(response.status===200){retur

javascript - ES6 Promise 替换 async.eachLimit/async.mapLimit

在async,如果我需要将异步函数应用于1000个项目,我可以这样做:async.mapLimit(items,10,(item,callback)=>{foo(item,callback);});以便同时处理10个项目,限制开销并允许控制。使用ES6promise,虽然我可以轻松做到:Promise.all(items.map((item)=>{returnbar(item);}));这将同时处理所有1000个项目,这可能会导致很多问题。我知道Bluebirdhavewaystohandlethat,但我正在寻找ES6解决方案。 最佳答案

javascript - 调用 Promise.all 会抛出在非对象上调用的 Promise.all?

我正在尝试从promise中返回promise并像这样运行Promise.all:updateVideos().then(videos=>{returnvideos.map(video=>updateUrl({id:video,url:"http://..."}))}).then(Promise.all)//throwPromise.allcalledonnon-object如何使用这种Promise.all。我知道.then(promises=>Promise.all(promises))有效。但是,只是想知道为什么失败了。Expressres.json也会发生这种情况。错误信息不同

javascript - 如何等到所有商店在 ExtJs 中同步?

我有一个网格列表,可以按最终用户的形式更改其数据。最后,我想通过单击按钮同步所有网格,然后执行一个操作。我写了下面的代码:$.when.apply(Ext.ComponentQuery.query('grid').forEach(function(item){if(item.getXType()=="grid"){if(item.store.getNewRecords().length>0||item.store.getUpdatedRecords().length>0||item.store.getRemovedRecords().length>0){item.store.sync(