草庐IT

Promise方法

全部标签

javascript - Bluebird.js 自定义错误捕获功能,不适用于第一个 promise ?

我正在尝试使用Bluebird.js的自定义错误处理程序。在下面的示例中调用了包罗万象的处理程序,而不是MyCustomError处理程序,但是当我将拒绝移动到then函数(并解决了firstPromise...)时,MyCustomError处理程序叫做。这是为什么?有什么问题吗?谢谢。varPromise=require('bluebird'),debug=require('debug')('main');firstPromise().then(function(value){debug(value);}).catch(MyCustomError,function(err){deb

javascript - 匹配至少四分之三的正则表达式要求的最佳方法

在密码策略中,有4个要求。它应该包含以下任何三个小写。大写。数字。特殊字符。以下正则表达式将匹配所有情况^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{4,8}$我知道我可以使用'|'然而,声明所有组合,这将产生一个超长的正则表达式。替换'|'的最佳方法是什么以便它可以检查输入是否包含组合中的三个条件中的任何一个? 最佳答案 如果您使用的是PCRE风格,则以下内容可以满足您的需求(为了便于阅读而格式化):^(?:((?=.*\d))((?=.*[a-z]))((?=.*[A-Z]

javascript - 我可以使用 JS Lint、JS Hint 或其他工具来防止将错误数量的参数传递给方法吗?

我是javascript编程(和一般的脚本语言)的新手,但是当我犯语法错误或不小心声明全局变量时,我一直在使用JSLint来帮助我。但是,有一个场景是JSLint没有涵盖的,我觉得这会非常方便。请看下面的代码:(function(){"usestrict";/*globalalert*/vartestFunction=function(someMessage){alert("stuffishappening:"+someMessage);};testFunction(1,2);testFunction();}());请注意,我向testFunction传递了错误数量的参数。我从来没有预

javascript - 使用 Chai 解决 Protractor 和 Cucumber 中的 promise

最近,我和一位同事对使用Protractor和Chai实现Cucumber步骤定义的“正确”方式存在一些分歧。我们的争论源于对Cucumber上下文中promise解决方案的确切情况的相互缺乏理解。我们正在针对AngularJS应用程序进行测试,因此解决promise和异步行为是不可避免的。我们遇到的最大问题是强制执行同步测试行为并让Cucumber在步骤定义之间等待promise。在某些情况下,我们观察到这样的情况,即Cucumber似乎在Webdriver执行步骤定义之前就直接完成了步骤定义。我们对这个问题的解决方案各不相同......考虑假设场景:Scenario:Whenaus

javascript - 循环 promise

我处于这样一个场景中,我必须按顺序从服务器获取数据,我想在Promises的帮助下做到这一点。到目前为止,这是我尝试过的:functiongetDataFromServer(){returnnewPromise(function(resolve,reject){varresult=[];(functionfetchData(nextPageToken){server.getData(nextPageToken).then(function(response){result.push(response.data);if(response.nextPageToken){fetchData(

javascript - 如何在 jQuery 语句中使用 Javascript 构造函数方法?

我不知道如何在jQuery.click方法中使用Javascript构造函数方法。我正在尝试让按钮的功能根据构造函数动态更改。这是设置:需要调用一个根据另一个按钮而改变的方法。以下是我损坏的代码:functionGloveMode(name,array){this.colorArray=array;this.displaySettings=function(){//Title$("#displayTitle").text(this.name);//DisplayColorSet$("#displayColors").empty();//TotallyBroken$("#upArrow"

javascript - 从Typescript中的实例访问静态方法

为什么我不能这样做?是由于Javascript/Typescript的技术限制,还是Typescript开发人员的设计决定?同样的代码在Java或C#中也能正常工作。classTest{staticstr:string="test";publicstaticgetTest():string{returnthis.str;}}//worksasexpectedconsole.log(Test.getTest());//won'tcompilevartest:Test=newTest();console.log(test.getTest()); 最佳答案

javascript - 为什么backbone全程使用_.extend()方法?

我对创建MVCjavascript框架感到好奇,这既是一种乐趣,也是一种学习体验。在backbone.js内部https://github.com/jashkenas/backbone/blob/master/backbone.js作者使用underscore的_.extend()方法来“扩展”主干对象。从Model开始,我试图找出这样做的好处。//AttachallinheritablemethodstotheModelprototype._.extend(Model.prototype,Events,{});这是如何运作的?Model在此之前已经定义,然后作者想要将源对象中的所有属

javascript - ES6 从一个方法调用另一个方法

这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭6年前。我是ES6语法的新手,我的原始代码有更多的实现,但我已经简化了。我收到一条错误消息,提示无法读取未定义的属性“Method2”。我在这里做错了什么?我是否必须执行任何绑定(bind)调用。classClass1{constructor(){eventbus.subscribe(this.Method1);}Method1(){this.Method2();}Method2(){}}

javascript - React 组件抛出的错误,被不相关的 promise 的 catch block 捕获

这是我遇到的。在React组件的渲染函数的某处,我有这个:{first_name}{last_name}我用这个替换了它:{first_name.toUpperCase()}{last_name.toUpperCase()}我的应用程序无法再登录。我正在使用Axios与后端对话。Axios是基于promise的。在我进行了上述更改之后。它显然开始执行我的loginAPI调用的then和catchblock。当我在catchblock中打印响应时。functionlogin(data,success,error){axios.post('/login',JSON.stringify(da