草庐IT

ES6 - Promise详解及用法

全部标签

javascript - Angular.js promise 在使用 karma 进行单元测试服务时不会解析

我正在尝试对Angular.js服务进行单元测试,并且需要对从模拟服务(使用Jasmine)返回的promise设置期望。我正在使用karma单元测试框架。相关代码片段如下://Ican'tfigureouthowtodotheequivalentofa$scope.$digesthere.varloginStatusPromise=FacebookService.getFacebookToken();loginStatusPromise.then(function(token){expect(false).toBeTruthy();//Ifthistestpasses,thereis

javascript - Restangular:WAITING promise 的解决?

我是Javascript和AngularJS的新手,这个让我摸不着头脑:/先决条件从后端提供我的数据的REST服务AngularJS1.2.21和Restangular1.4.0一个AngularJSController,它将向服务请求所提供的增强版本我有什么这是有问题的方法:service.getSlices=function(){Restangular.all('entries').getList().then(function(entries){//somerathercomplexmodificationofthebackenddatagohere//...returnresu

javascript - 如何在解决所有 javascript ES6 Promises 后运行

我正在替换一些使用jQueryDeferred对象的旧代码,我正在使用Bluebird/ES6Promises重写。如果我有多个异步调用,我如何在所有promise都已解决后触发一个函数。使用jQueryDeferreds它会是这样的:varrequests=[...];//somearbitrarydatathatisiteratedtogeneratemultipleajaxrequestsvarpromises=[];resuests.forEach(function(endpoint){promises.push($.ajax({url:endpoint}));});$.whe

javascript - 如何从 promise 方法内部访问 Angular js Controller 的 "this"?

我有一个简单的AngularjsController,如下所示发出XHR请求app.controller('MainController',['$http',function($http){this.php_response={};varpromise=$http.get('process.php');promise.then(function(success_data){//Idontthink"this"istalkingtothecontrollerthisanymore?this.php_response=success_data;},function(error){conso

javascript - React ES6 父子组件状态问题

我是React的新手,正在尝试基于react-starter-kit构建一个简单的ToDo应用程序。我正在使用ES6类,但无法找到从子组件更新父状态的方法。代码如下:importReact,{PropTypes,Component}from'react';importwithStylesfrom'../../decorators/withStyles';importstylesfrom'./ToDoPage.less';@withStyles(styles)classToDoPageextendsComponent{staticcontextTypes={onSetTitle:Prop

javascript - for 循环中的 Promise 链

for(variinlistofInstances){cleanupInstance(listofInstances[i]).then(function(){console.log("Done"+listofInstances[i])});}cleanupInstance也是一个promise链。然而,目前我的for循环在整个promise链完成之前进入下一次迭代。有没有办法也promise循环?我正在使用Bluebird库(nodejs)来实现promise。 最佳答案 你可以使用.each:varPromise=require(

javascript - Javascript promise 中的错误处理

我有一些Javascript代码通过一些同步后处理来做一些异步的事情,然后再做一些异步的事情(XHR->解析XHR->基于第一个的新XHR)。我没有完成错误处理:/*API*/functiongetFile(name){return$.ajax({url:name+".json"}).then(function(data){returndata.id},handleError)}functionhandleError(errorObj){if(errorObj.status){returnerrorObj.status}else{returnerrorObj}}functionmyAp

javascript - ES6 类超出最大调用堆栈大小

这个问题在这里已经有了答案:JavaScriptclasseswithgetterandsettercauseRangeError:Maximumcallstacksizeexceeded(5个答案)关闭7年前。我正在尝试使用新的ES6Class关键字,我有一个时髦的场景,它给我一些无限循环并最终Maximumcallstacksizeexceeded。这是我的类(class):'usestrict';classGroup{setname(newName){this.name=newName;}}module.exports=Group;我用这个mocha测试调用它:'usestric

javascript - 浅拷贝对象遗漏了 ES6/ES7 中的一个或多个属性?

这就是我一直在做的:varprops={id:1,name:'test',children:[]}//copypropsbutleavechildrenoutvarnewProps={...props}deletenewProps.childrenconsole.log(newProps)//{id:1,name:'test'}有没有更干净、更简单的方法? 最佳答案 你可以使用destructuringassignment:varprops={id:1,name:'test',children:[]}var{children:_,.

javascript - 我如何推迟像 jquery Deferred 这样的 ES6 promise?

1。使用es6promise,但语法不正确。我正在使用es6,并且想做一个延迟的确认对话框://First,createanemptypromise:letpromise=newPromise((resolve,reject)=>{})//Then,showthedialog:let$dialog=$('#dialog-confirm').show();//FAIL:Iwanttotriggerthepromiseresolver,butfailed.$dialog.find('.btn-yes').click(()=>{promise.resolve();})$dialog.find