草庐IT

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 - 有什么方法可以撤销或撤消 preventExtensions 功能吗?

有可能使不可扩展的对象可扩展吗?varobj={};Object.preventExtensions(obj);obj.abc="abc";//thislineisignoredwhichisnormal//isthereawaytomakeobjextensibleagain 最佳答案 深度克隆怎么样?obj=JSON.parse(JSON.stringify(obj));obj.abc="abc";//thislineisnowOK在本地代码中没有问题,但是obj附带的任何外部引用将不再指向新形成的obj。

javascript - React Native 元素类型无效。检查渲染方法

我环顾四周,其中大部分问题都是导入或导出不正确造成的,但我检查了我的应用程序,但我不确定我导出/导入的内容有误。这正是我遇到的错误。React.createElement:typeisinvalid--expectedastring(forbuilt-incomponents)oraclass/function(forcompositecomponents)butgot:object.Youlikelyforgottoexportyourcomponentfromthefileit'sdefinedin.ChecktherendermethodofFooterTabs.不确定渲染方法是

javascript - 以编程方式填充 ReactJS 输入的正确方法

我正在构建一个运行JavaFXWebkit的headless爬虫,它肯定没有chrome的v8强大。但是我最近遇到了一些问题,我试图输入一个值来对呈现的输入字段使用react。这是我到目前为止所做的但失败了。[注意:我无法控制源代码/React代码。因为我正在尝试抓取目标网站]jQuery-$('input.r_input').val("2");VanilaJS-document.querySelector("input.r_input").value="2";通过jquery触发器触发更改事件-change、blur、keyup、keydown等。创建一个手动事件,例如:event=

javascript - React antd 轮播方法

我正在考虑使用antd轮播,但我还没有看到描述如何使用goTo(slideNumber,dontAnimate)方法的示例。我尝试使用这个问题的答案react.jsantdcarouselwitharrows使goTo方法对我有用,但没有帮助,我总是将carouselref设置为nullimport*asReactfrom'react';import{createPortal}from'react-dom';import{Modal,Carousel}from'antd'exportdefaultclassImagePreviewCarouselextendsReact.Compone

javascript - 在javascript中控制相关对象的正确方法是什么?

我是面向对象编程的新手,正在慢慢学习如何将其应用于javascript。所以请多多包涵。:)我有两个基本对象:“record”,其中包含用于编辑记录集中单个记录的方法。(创建、保存、加载等)“recordList”,其中包含用于输出记录标题分页列表的方法。我希望这些对象能够协同工作。例如,如果record.save()被调用,recordList.refresh()也会被调用,因此分页列表反射(reflect)更新的数据。为此,我创建了第三个对象“control”,它包含“record”和“recordList”的实例。我以下列方式使用“控制”:control={}control.re

javascript - 有人知道这个 Chrome 错误的解决方法吗?

所以我得到了以下脚本:functionalert_minutes(){vard=newDate();alert('Minutespastthehour:'+d.getMinutes());}ClickMe然后我将其加载到Chrome中。我按下按钮,它告诉我Minutespastthehour:30这是正确的。我将本地时间快进十分钟,再按一次,它会告诉我Minutespastthehour:40所以没问题。现在我将本地时间调回正确的时间,第三次按它,它仍然显示Minutespastthehour:40我刷新了页面,按了第四次,还是显示Minutespastthehour:40我关闭所有C