草庐IT

promises

全部标签

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 - Express 中间件、next 和 Promises

有一个非常简单的带有处理程序的Express路由器:router.get('/users/:userId/roles/:roleId',function(req,res,next){constroleId=req.params.roleId;res.rest.resource=UserModel.findOne({_id:req.params.userId}).exec().then(function(usr){console.log(req.params.roleId);//=>undefinedconsole.log(roleId);//=>okayhereconstresult=

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 - Angular : chaining promises over forEach loop

我无法理解promise。我正在使用GoogleEarthAPI进行地址“游览”。游览只是一个持续大约一分钟的动画,一个完成后,下一个应该开始。这是我的巡视功能:vartourAddress=function(address){returntourService.getLatLong(address).then(function(coords){returntourService.getKmlForCoords(coords).then(function(kml){_ge.getTourPlayer().setTour(kml);_ge.getTourPlayer().play();v

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