草庐IT

javascript - 未使用延迟[反]模式的情况下尚未创建的 promise 的 promise

问题一:在给定的时间只允许一个API请求,所以真正的网络请求在排队,而还有一个还没有完成。应用程序可以随时调用API级别并期望得到promise。当API调用排队时,网络请求的promise将在未来的某个时间点创建-返回应用程序什么?这就是用延迟的“代理”promise解决问题的方法:varqueue=[];functioncallAPI(params){if(API_available){API_available=false;returndoRealNetRequest(params).then(function(data){API_available=true;continueR

javascript - 如何使用 Promises 实现异步无限循环

我需要一个“无休止的”while循环,其中包含promises。下面是一些示例代码:letnoErrorsOccured=truewhile(noErrorsOccured){someAsyncFunction().then(()=>{doSomething();}).catch((error)=>{console.log("Error:"+error);noErrorsOccured=false;});}functionsomeAsyncFunction(){returnnewPromise((resolve,reject)=>{setTimeout(()=>{constexampl

javascript - 为什么 RxJS 函数 toPromise 没有取消订阅

在我们的应用程序中,我们有很多地方用到:someObservable.take(1).subscribe(onSuccessHandler,onFailureHandler);但是对于订阅,您需要担心在某个时候取消订阅,这并不总是那么简单。我正在考虑将其简化并重写为:someObservable.toPromise().then(onSuccessHandler).catch(onFailureHandler);但是查看toPromise()(here)的实现,我似乎不明白为什么它不关心取消订阅。代码中的注释说不能取消,但我们如何让它像这样泄漏内存(以防我们确实如此)。编辑我想出了一个

javascript - 使用 Promises 的多路流的正确模式

所以最近几天我一直在玩promises,只是想转换一些项目,使用promises,但是我遇到这个问题不止几次。在阅读文章和教程时,一切看起来都很流畅和干净:getDataFromDB().then(makeCalculatons).then(getDataFromDB).then(serveToClient)但实际上并非如此。程序有很多改变整个流程的“if条件”:getDataFromCache(data).then(function(result){if(result){returnresult;}else{returngetDataFromDB();}}).then(functio

javascript - 我应该在异步函数中抛出错误还是返回被拒绝的 promise ?

这个问题在这里已经有了答案:ShouldanasyncAPIeverthrowsynchronously?(5个答案)关闭5年前。我正在履行AWSJSSDK提供的promise.当我创建一个包装AWSSDK的异步函数时,我正在做的事情的要点如下所示:module.exports.myCustomFunction=input=>{if(badInput){thrownewError('failed')//{//carryon}).catch(err=>{//dosomethingwiththeerror})有人找到我,他说我永远不应该在这些基于promise的函数中抛出错误。他们建议改为

javascript - 找不到变量 : Promise in Phantomjs

我正在用Jasmin编写测试用例。当我调用波纹管方法时,初始化({"Data":"primary"});这是:initialize:function(config){console.info("initializeVersion2initialized..");returnnewPromise(function(resolve,reject){console.info("promise");resolve(true);});}我遇到了错误ReferenceError:找不到变量:Promiseinhttp://localhost:8080/absolute/home/krushanu/

javascript - 在 Observable 上使用 await 时,我应该使用什么来代替 toPromise()?

Thispage说“toPromise已被弃用!(RxJS5.5+)”但我最近一直在使用AngularFire2(当我只想要一个结果时),如下所示:constfoo=awaitthis.afs.doc(`docPath`).valueChanges().toPromise();我不应该这样做吗?如果不是,await替代方案是什么?更新:在下面的答案之后我改变了这个:constfoo=awaitthis.afs.doc(`docPath`).valueChanges().toPromise();...为此:constfoo=await(newPromise(resolve=>this.a

javascript - 如何为我的任务实现实现 Promise.all 的等价物?

这是我的Task实现(即一种Promise但遵守monad法则并且可取消)。它工作坚如磐石:constTask=k=>({runTask:(res,rej)=>k(res,rej)});consttAp=tf=>tk=>Task((res,rej)=>tf.runTask(f=>tk.runTask(x=>res(f(x)),rej),rej));consttOf=x=>Task((res,rej)=>res(x));consttMap=f=>tk=>Task((res,rej)=>tk.runTask(x=>res(f(x)),rej));consttChain=fm=>mx=>Ta

javascript - 恩伯斯 : how to display loading spinner and notification messages on model operations

我正在使用ember.js1.2,在对我的模型进行CRUD操作期间尝试显示加载微调器和通知消息时遇到问题。代码如下:varMyModelController=Ember.ObjectController.extend({needs:['application'],application:Ember.computed.alias("controllers.application"),actions:{save:function(){var_this=this;//Displaythespinnerthis.get('application').get('loading').trigger

javascript - Angular-UI-Router - 获取动态模板的内容

我正在使用angular-ui-router构建一个Angular应用程序。后端有一个RESTapi,它根据工单ID为我提供表单的url。在app.js中,我想根据对此REST服务的查询动态设置模板。示例:$stateProvider.state('form',{url:'/form/:id',templateProvider:function($resource,formResolver,$stateParams){//formResolvercallstheRESTAPIwiththeformidandgetsbackaURL.returnformResolver.resolve(