草庐IT

Promise方法

全部标签

javascript - 用 sinon stub 一个原型(prototype)方法

假设我有以下方法:Controller.prototype.refresh=function(){console.log('refreshing');}Controller.prototype.delete=function(object){varself=this;object.delete({id:object.id},function(){self.refresh();});}现在在我的(mocha)测试中:beforeEach(function(){varcontroller=newController();varproto=controller.__proto__;varob

javascript - 将项目插入数组的最佳性能方法?

在我的网站上,我有许多包含数据的数组。例如:顶点数组、颜色数组、尺寸数组...我正在处理大量项目。高达数千万。在将数据添加到数组之前,我需要对其进行处理。直到现在,我都是在主线程中完成的,这让我的网站卡住了X秒。由于处理以及将处理后的数据添加到数组中,它卡住了。今天我将处理“移动”(做了很多工作)到webworker中,但是处理后的数据被添加到主线程中。我设法节省了处理的卡住时间,但没有节省添加的时间。添加只需通过array.push()或array.splice()即可完成。我读过一些关于数组如何工作的文章,发现当我们将项目添加到数组时,数组被完全复制到内存中的一个新位置array.

javascript - 从 Vue.js 中的父组件执行子方法

目前,我有一个Vue.js组件,其中包含其他组件的列表。我知道使用vue的常见方式是将数据传递给child,并从child向parent发送事件。但是,在这种情况下,我想在单击父中的按钮时在子组件中执行一个方法。哪种方法最好? 最佳答案 一个建议的方法是使用globaleventhub.这允许有权访问集线器的任何组件之间进行通信。这是一个示例,展示了如何使用事件中心来触发子组件上的方法。vareventHub=newVue();Vue.component('child-component',{template:"The'clicke

javascript - 有什么方法可以将 referer 设置为 youtube-iframe-api 吗?

我正在开发一个Chrome扩展,我正在使用youtube-iframe-api。通过以下代码制作的播放器可以播放任何视频,除了一些有限的(?)视频,例如vevo。functiononYouTubeIframeAPIReady(){player=newYT.Player('player',{height:'300px',width:'800px',videoId:'RhU9MZ98jxo',playerVars:{'origin':'https://www.youtube.com','wmode':'opaque'},events:{'onReady':onPlayerReady,'on

javascript - 删除对对象方法的公共(public)访问

我想获取一个对象并从中删除一些方法。即我内部有一个带有getter/setter的对象,我想让外部用户访问它。我不希望他们有权访问setter函数。我不想通过从中删除方法来更改原始对象引用,而是创建一个新的对象引用,该对象引用指向同一个对象但其上的方法较少。我该怎么做?这是设计模式吗?是否有针对此类问题的众所周知的解决方案?我有这个函数的实现varreadOnly=function(obj,publicData){//createanewobjectsothatobjisn'teffectedvarobject=newobj.constructor;//removeallitspubl

javascript - 如何使用 DOM 方法可靠地对数组进行子排序?

预先注意:我在这里没有使用jQuery或其他库,因为我想了解我写的内容以及它为什么有效(或无效),所以请不要用库或库插件来回答这个问题。我并不反对库,但对于这个项目而言,它们不利于我的编程目标。也就是说……在http://meyerweb.com/eric/css/colors/我使用自己编写的DOM函数添加了一些列排序。问题是,虽然它非常适合按字母顺序排列字符串的简单情况,但当我尝试对多个数字项进行排序时,浏览器之间的结果不一致——实际上,当我尝试对两个子排序进行排序时。例如,如果您在OSX上的Safari或Firefox中单击“DecimalRGB”几次,您将获得我想要的结果。在C

javascript - 我如何模拟 AngularJS 单元测试中 promise 的结果?

我的CompanyService是:angular.module('mean').service('CompanyService',['$http','$rootScope','$q',function($http,$rootScope,$q){varcompany=this;varinitializedDeferred=$q.defer();company.company_data={}company.initialized=initializedDeferred.promise;company.getCompany=function(){returncompany.company_

Javascript 递归 promise

我正在尝试使用Promises创建一个递归函数,但似乎不太正确。我有不使用promises的工作代码,但它使用了计数器和全局变量等,感觉不太正确,所以我正在尝试重写并创建一个模块以供重用。本质上,该功能应该是从ActiveDirectory中获取用户,然后递归查找任何直接下属及其直接下属等。我玩过很多版本的函数,这是当前版本:functionloadReports(personEmail,list){returnnewPromise((resolve,reject)=>{getAccessTokenPromise().then(access_token=>{list.push(pers

javascript - 功能类似于 Promise.some/any 未知数量的 promise

我正在node.js(V8.1.3)中创建一个脚本,它查看来自多个API的类似JSON数据并比较值。更准确地说,我正在查看不同股票(实际上是加密货币)的不同市场价格。目前,我正在使用promise.all等待来自各个API的所有响应。letfetchedJSON=awaitPromise.all([getJSON(settings1),getJSON(settings2),getJSON(settings3)...]);但是,即使只有一个promise因错误而被拒绝,Promise.all也会抛出错误。在bluebirddocos中有一个函数叫做Promise.some这几乎就是我想要

javascript - 从构造函数中将方法附加到原型(prototype)

这是描述JavaScript中“类”或构造函数的教科书标准方法,直接来自JavaScript权威指南:functionRectangle(w,h){this.width=w;this.height=h;}Rectangle.prototype.area=function(){returnthis.width*this.height;};我不喜欢这里的悬空原型(prototype)操作,所以我试图想办法将area的函数定义封装在构造函数中。我想到了这个,但我不期望它能工作:functionRectangle(w,h){this.width=w;this.height=h;this.con