草庐IT

request-promise

全部标签

javascript - 在 Javascript 中缓存和预取过期的 promise

Promises是我在Javascript中管理异步代码的首选方式。Memoize(npm上的memoizee)是一个Javascript库,用于轻松缓存和预取函数结果。理想情况下,我想结合两者的优点,并且能够“过期”一个Promise并预取一个新的Promise结果(当缓存被触及并接近过期时)。Memoize可以做到这一点,但它并没有考虑到Promises。(我知道Promises有一个内置的“永远缓存”,这是它们的本质,但是永远对我的应用程序来说太长了)到目前为止,我最好的尝试如下(使用bluebird、memoize和underscore的node.js示例):varmemoiz

javascript - Ember.js:将 Em.$.getJSON 转换为 promise 并将响应绑定(bind)到 Controller 上下文的正确方法?

我正在使用$.getJSON获取一些数据,我想将这些数据异步绑定(bind)到Controller上下文。我在我的route想出了这个-它有效,但我对此并不满意:setupController:function(controller,model){this._super(controller,model);Em.RSVP.Promise.cast(Em.$.getJSON((this.get('ENV.apiBaseURL'))+"/users/current/live_matchday_stats")).then((function(_this){returnfunction(s){

javascript - 用另一个 promise 履行(不解决) promise

我想用其他promise来履行promise。重点是,我真的很想在第一个promise实现后立即访问(仍在等待中的)第二个promise。不幸的是,我似乎只能在两个promise都实现后才能获得第二个promise的解决值。这是我想到的用例:varpicker=pickFile();picker.then(//Waitfortheusertopickafile.function(downloadProgress){//Theuserpickedafile.Thefilemaynotbeavailablejustyet(e.g.,//ifithastobedownloadedoverth

javascript - 混合 $q 和 ES6 promise 时测试 Angular

我遇到一个问题,我的代码混合了ES6Promises和AngularPromises,并且它在生产中工作,因为我无法编写通过的单元测试。此代码片段演示了Jasmine单元测试失败的两个实例,但代码在生产中运行良好://Anangular$qpromisevarf1=function(){return$q(function(resolve,reject){resolve('Thisisfunction1!');});}//AnES6promisevarf2=function(){returnnewPromise(function(resolve,reject){resolve('This

javascript - 是什么决定了使用 promises 或 setTimeout 的延迟函数的调用顺序?

延迟函数的执行,例如在自定义事件处理中,是JavaScript中的一种常见模式(参见,例如here)。过去使用setTimeout(myFunc,0)是唯一的方法,但是有了promises现在有一个替代方法:Promise.resolve().then(myFunc)。我原以为它们几乎可以做同样的事情,但是在处理包含自定义事件的库时,我想我会发现是否存在差异,所以我将以下block放入Node中:varlogfn=function(v){returnfunction(){console.log(v)}};setTimeout(logfn(1),0);Promise.resolve().

javascript - 服务器响应 500 错误时触发 XMLHttp Request .upload.onprogress

我使用XMLHttp​Request上传文件。如果服务器响应错误消息500,我会尝试在onprogress事件之前处理错误消息。XMLHttpRequestconstxhr=newXMLHttpRequest();xhr.onreadystatechange=function(oEvent){if(xhr.readyState===4){if(xhr.status===500){console.log('error2');}}};xhr.onload=function(){if(this.status==200){console.log('success');}};xhr.upload

javascript - AngularJS : Should service's boolean method return promise that resolves to true/false, 或者被解决/拒绝?

promise的使用模式仍然让我感到困惑。例如,在Angular应用程序中,我有一个服务usersService,方法是emailExists(email)。显然,它向服务器请求检查给定的电子邮件是否已经存在。让方法emailExists(email)返回在正常操作中解析为true或false的promise对我来说感觉很自然.如果只是我们有一些意外的错误(比如,服务器返回500:内部服务器错误,那么promise应该被拒绝,但在正常操作中,它被解析为相应的bool值。然而,当我开始实现我的异步验证器指令(通过$asyncValidators)时,我看到它想要解决/拒绝promise。

javascript - 如何实现 Typescript 异步等待模式 : Where is the Promise

我正在学习Angular和Typescript。我有一个客户服务,在这个服务中我有一个方法,我希望从RESTfull服务返回一组客户。最初我是这样创建我的GetCustomers函数的:publicGetCustomers():Dtos.ICustomer[]{var_customers:Dtos.ICustomer[];this._httpService.get('http://localhost/myTestApi/api/customers/').success(function(data){_customers=dataasDtos.ICustomer[];}).error(f

javascript - 了解已解决 promise 的后续 then() 处理程序的执行顺序

我正在学习Promise,为了理解它,我阅读了一些有关JavaScript事件循环的内容。这article简要介绍了调用栈、事件表、消息队列等事件循环的工作原理。但我不知道调用堆栈如何处理包含“return”的行,以及此后会发生什么。下面是我写的一个例子,希望能理解Promise是如何基于事件循环工作的。另见http://jsbin.com/puqogulani/edit?js,console如果你想试一试。varp1=newPromise(function(resolve,reject){resolve(0);});p1.then(function(val){console.log(

javascript - 以推荐的方式停止 Promise Chain 执行

这个问题在这里已经有了答案:Howtoproperlybreakoutofapromisechain?(3个答案)关闭5年前。我有一个类似于这个的代码:promise_function().then(()=>{//dosomethingreturnanother_promise_fucntion();}).then(()=>{//dosomethingreturnanother_promise_function1();}).then((result)=>{//checkifresultisvalidif(!result)//breakchain(howtostopcallingthen