草庐IT

PG-Promise

全部标签

javascript - 在循环中链接嵌套的 promise

我对promises有点陌生,并且坚持以下练习。我有一组值,我想对每个值执行一个异步调用。在回调中,我想对第一次调用的结果执行另一个调用。基本上,我的挫败感在于:执行顺序应该是'1x2x3x'但是顺序是'123xxx'换句话说,当第一个promise的子/嵌套promise尚未完成时,循环已经进入下一次迭代。varvalues=["1","2","3"];functiondo(val){vardeferred=Q.defer();asyncCall(val).then(function(response){console.log(val);asyncCall(response).the

javascript - 使用 Bluebird promise bcrypt-nodejs

我正在使用NodeJS,bcrypt-nodejs(https://github.com/shaneGirish/bcrypt-nodejs)和Bluebird用于promises。想出了这段代码,并想知道是否有更好的方法来做同样的事情。我有模块:varPromise=require("bluebird"),bcrypt=Promise.promisifyAll(require('bcrypt-nodejs'));//....[someothecodehere]Users.prototype.setPassword=function(user){returnbcrypt.genSalt

javascript - 当我不使用 Promise 的 "then"函数时,是否有任何(负面)副作用?

我有一个返回Promise的函数。现在,有时消费者在该Promise上使用“then”函数是有意义的。但有时消费者根本不关心Promise何时解析,也不关心结果-换句话说,同样的函数也应该能够以“即发即弃”的方式调用。所以我想要这两种使用场景:func().then(...);//processPromisefunc();//"fireandforget"这显然有效,但我想知道这是否被视为“不良做法”,特别是这种使用模式是否会产生任何不良副作用,即。导致内存泄漏?现在我正在使用bluebird,但如果有任何不同,我会考虑切换到原生Promises。 最佳答案

javascript - CasperJS/PhantomJS ES6 Promise Polyfill

我目前正在尝试使用PhantomJS和CasperJS来制作端到端测试。我遇到的是PhantomJS缺乏promise的情况。目前我们的项目实现了它们。该应用程序仅在原生支持promises的GoogleChrome中使用。在运行我的测试时我收到错误:错误:ReferenceError:找不到变量:Promise这似乎是因为PhantomJS中当前版本的Webkit不支持promise。我意识到SlimerJS确实通过Gecko获得了这种支持,但是我们的应用程序在Chrome中运行,因此我希望在Webkit中进行测试。我一直在努力解决的问题是将ES6promisepolyfill注入(

javascript - Promise、Promise/A 和 Promise/A+ 之间的区别

我已经阅读了Promise/A+规范,但据我了解,还有诸如Promise/A和Promise之类的东西。它们之间有什么区别?Promise和Promise/A规范也是如此吗?如果是这样,有什么区别?对不起,如果这个问题很愚蠢,因为我是主要的后端开发人员。提前致谢! 最佳答案 IsPromiseaspecificationaswell?没有。这只是一个具有上下文相关含义的术语。参见示例WhatarethedifferencesbetweenDeferred,PromiseandFutureinJavaScript?或theWikipe

javascript - 浏览器是否仍然默默地吞下未处理的拒绝 promise ? Node 呢?

有很多建议建议您确保不要让任何被拒绝的promise得不到处理。如果你不这样做,建议警告,错误将永远不会被注意到,并将被完全吞没。控制台不会打印任何内容。这个建议似乎已经过时了。当未处理被拒绝的promise时,现代浏览器和现代版本的Node似乎确实会打印警告。拿这段代码:asyncfunctionthisIsGoingToFail(){awaitPromise.reject();console.log('thisshouldnotprint,asthelineaboveshoulderror');}asyncfunctionmain(){awaitthisIsGoingToFail(

javascript - 级联 promise

任何超出简单promise的事情通常都会让我感到困惑。在这种情况下,我需要对N个对象连续执行2个异步调用。首先,我需要从磁盘加载一个文件,然后将该文件上传到邮件服务器。我更喜欢同时执行这两个操作,但我已经通过先执行所有读取然后再执行所有上传来使其正常工作。下面的代码有效,但我不禁认为它可以做得更好。我不明白的一件事是为什么when.all不拒绝。我对文档的解释似乎暗示,如果其中一个promise被拒绝,则.all将被拒绝。为了测试错误,我已经注释掉了较低的分辨率。没有错误,事情似乎工作正常并且有意义。mail_sendOne({from:'greg@',to:'wilma@',subj

javascript - 结束 Promise 链

我遇到了一个关于未终止的Promise链的Promise警告(“一个Promise是在处理程序中创建的,但没有从它返回”)。我是Promises的新手,怀疑我在不应该的时候使用了非事件驱动的思维。但我不确定如何进行。这一切都在一个nodejs项目中。我正在与ZWave服务器交互以打开和关闭灯。该交互采用向控制ZWave网络的服务器发出http请求的形式。由于通过http进行交互的异步性质,我正在使用Promises。在我的程序的一个级别上,我定义了以下类方法:ZWave.prototype.onOff=function(nodeNumber,turnOn){varself=this;v

javascript - 实现 Promise.all

这个问题在这里已经有了答案:JavaScriptclosureinsideloops–simplepracticalexample(44个答案)关闭6年前。exercises之一在EloquentJavascript这本书的第17章是实现Promise.all()方法,我想出了这个实现(不起作用):functionall(promises){returnnewPromise(function(success,fail){varsuccessArr=newArray(promises.length);if(promises.length==0)success(successArr);va

javascript - NodeJS 和 pg-promise,捕获 PostgreSQL 异常

我正在使用PostgreSQL后端运行NodeJS和pg-promise。我创建了自己的TRIGGER,它在某些情况下会抛出异常。到此为止一切正常。但是使用pg-promise我很难捕捉到错误的名称。使用这段代码:....catch(function(err){console.log(err);});我得到以下输出:[{success:false,result:{[error:vote_limit_exceeded]name:'error',length:80,severity:'ERROR',code:'P0001',detail:undefined,hint:undefined,p