Tag: 承诺

如何find哪些promise在nodejs中未处理UnhandledPromiseRejectionWarning?

从版本7的nodejs有asynchronous等待处理承诺的sintactic糖,在我的apis下面的警告经常出现: (node:11057) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: Error: Can't set headers after they are sent. (node:11057) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 不幸的是,没有提到渔获缺失的地方。 有没有办法find它没有检查每个try catch块?

jQuery AJAX调用中有没有类似于“finally”的东西?

在jQuery AJAX调用中是否有Java“最终”模拟? 我在这里有这个代码。 在我总是我抛出一个exception,但是我总是希望它去的then()方法。 call.xmlHttpReq = $.ajax({ url : url, dataType : 'json', type : 'GET' }).always(function(processedDataOrXHRWrapper, textStatus, xhrWrapperOrErrorThrown) { throw "something"; }).then(function() { alert("i want to always run no matter what"); }); 我试图使用done() , complete()和另一个always() ,但似乎没有任何工作。 这里是JSFiddle: http://jsfiddle.net/qv3t3L0m/

Angularjs $ http.get()。然后绑定到一个列表

我有一个如下所示的列表: <li ng-repeat="document in DisplayDocuments()" ng-class="IsFiltered(document.Filtered)"> <span><input type="checkbox" name="docChecked" id="doc_{{document.Id}}" ng-model="document.Filtered" /></span> <span>{{document.Name}}</span> </li> 我将这个列表绑定到我的控制器中, $scope.Documents = $http.get('/Documents/DocumentsList/' + caseId).then(function(result) { return result.data; }); 当这运行,我没有得到任何结果。 当我删除then方法,我得到三个空行,使计数确定,但没有信息显示。 我知道“everthing”别的作品,因为我以前用jQuery填充列表,我做错了什么? 这是来自服务器的响应: {Id:3f597acf-a026-45c5-8508-bc2383bc8c12, Name:ZZ_BL0164_Skisse BL0164_945111.pdf, Order:1,…} {Id:46f51f1f-02eb-449a-9824-8633e8ae7f31, Name:ZB_BL0201_Firmaattest BL0201_945111.pdf, Order:1,…} {Id:fddd1979-c917-4b32-9b83-b315f66984ed, Name:ZA_BL0228_Legitimasjonsskjema BL0228_945111.pdf,…}

asynchronous箭头函数的语法

我可以使用async关键字将javascript函数标记为“async”(即返回一个promise)。 喜欢这个: async function foo() { // do something } 什么是箭头函数的等效语法?

如何从内部拒绝承诺的function

这可能是一个愚蠢的问题,但中期承诺链,你如何拒绝从当时的职能之一的承诺? 例如: someActionThatReturnsAPromise() .then(function(resource) { return modifyResource(resource) }) .then(function(modifiedResource) { if (!isValid(modifiedResource)) { var validationError = getValidationError(modifiedResource); // fail promise with validationError } }) .catch(function() { // oh noes }); 不再有对原始parsing/拒绝function或PromiseResolver的引用。 我只是应该添加return Promise.reject(validationError); ?

如何debuggingJavaScript的承诺?

我想了解如何debugging基于promise的asynchronous代码。 承诺我的意思是基于ECMAScript 6的承诺,通过debugging我的意思是使用内置的铬或Firefoxdebugging器。 我遇到的麻烦是,当出现错误时,无论如何“拒绝”,我都无法得到堆栈跟踪。 我试过这些: console.log(new Error('Error occured')); throw new Error('Throwing an Error'); return new Error('Error returned by the onRejected function'); reject(new Error('Pass Error to the reject function')); 但是,这些都不会返回代码中的实际错误或堆栈跟踪。 所以我的问题是 – 如何正确debuggingJavaScript承诺?

如何在Promise中捕捉未捕获的exception

有没有办法在全球范围内捕捉所有exception,包括Promiseexception。 例: window.onerror = function myErrorHandler(errorMsg, url, lineNumber) { alert("Error occured: " + errorMsg);//or any message return false; } var myClass = function(){ } var pr = new Promise(function(resolve, react){ var myInstance = new myClass(); myInstance.undefinedFunction(); // this will throw Exception resolve(myInstance); }); pr.then(function(result){ console.log(result); }); // i know right will be this: // pr.then(function(result){ […]

处理Promise.all中的错误

我有一组Promise.all(arrayOfPromises); 我继续承诺链。 看起来像这样 existingPromiseChain = existingPromiseChain.then(function() { var arrayOfPromises = state.routes.map(function(route){ return route.handler.promiseHandler(); }); return Promise.all(arrayOfPromises) }); existingPromiseChain = existingPromiseChain.then(function(arrayResolved) { // do stuff with my array of resolved promises, eventually ending with a res.send(); }); 我想添加一个catch语句来处理单个承诺,以防万一它出错,但是当我尝试时,Promise.all返回它find的第一个错误(忽略其余部分),然后我无法从其余的数组中的承诺(即没有错误)。 我试过做一些像.. existingPromiseChain = existingPromiseChain.then(function() { var arrayOfPromises = state.routes.map(function(route){ return route.handler.promiseHandler() .then(function(data) { return data; }) .catch(function(err) { […]

在返回函数的variables之前如何等待一个承诺?

我仍然在努力承诺,但由于这里的社区取得了一些进展。 我有一个简单的JS函数查询一个parsing数据库。 它应该返回结果数组,但显然由于查询的asynchronous性质(因此承诺),函数返回结果之前,留下一个未定义的数组。 为了使这个function等待承诺的结果,我需要做些什么? 这是我的代码: function resultsByName(name) { var Card = Parse.Object.extend("Card"); var query = new Parse.Query(Card); query.equalTo("name", name.toString()); var resultsArray = []; var promise = query.find({ success: function(results) { // results is an array of Parse.Object. console.log(results); //resultsArray = results; return results; }, error: function(error) { // error is an instance of Parse.Error. console.log("Error"); […]

推迟与承诺

除了jQuery版本之外,Deferred和Promise有什么区别? 我应该用什么来满足我的需要? 我只想调用fooExecute() 。 我只需要fooStart()和fooEnd()来切换html div的状态。 //I'm using jQuery v2.0.0 function fooStart() { /* Start Notification */ } function fooEnd() { /* End Notification */ } function fooExecute() { /* Execute the scripts */ } $('#button1').on('click', function() { var deferred1 = $.Deferred(); var promise1 = $.Promise(); deferred1.??? promise1.??? });