草庐IT

Bluebird

全部标签

javascript - 如何使用 Promise.promisify 确保正确的 "this"?

我正在尝试使用Bluebird库的promise来重构我的nodejs服务器,但我遇到了一个简单的问题。从我的数据库中获取用户后,我想列出与该用户关联的所有通知类:糟糕的方式(工作...)adapter.getUsers(function(users){users.rows.forEach(function(item){user=item.username;adapter.getNotifications(user,function(notificationList){console.log(notificationList);})});});优雅的尝试方式(不工作...)varget

javascript - 处理嵌套 promise 的最佳方式( Bluebird )

这个问题在这里已经有了答案:HowdoIaccesspreviouspromiseresultsina.then()chain?(17个答案)关闭7年前。我下面有以下promise链,它看起来很乱(每个_create*函数返回一个promise):returnnewPromise(function(resolve,reject){_this.database.transaction(function(t){_this._createExternalAccount(payment,t).then(function(externalAccount){return_this._createE

javascript - Sequelize : how to get results from each promise 中的 promise

在Sequelize中>=1.7wecanusepromises你能为我解释一下如何在这段代码中从每个用户那里获取值吗:varUser=sequelize.define("user",{username:Sequelize.STRING})User.sync({force:true}).then(function(){returnUser.create({username:'John'})}).then(function(john){returnUser.create({username:'Jane'})}).then(function(jane){returnUser.create(

javascript - 同步 promise 解析(bluebird vs. jQuery)

我为DynamicsCRMREST/ODATAwebservice开发了一个小库(CrmRestKit)。该库依赖于jQuery并使用promise-pattern,分别是jQuery的promise-like-pattern。现在我想将这个库移植到bluebird并删除jQuery依赖项。但是我遇到了一个问题,因为bluebird不支持promise-objects的同步解析。一些上下文信息:CrmRestKit的API除了一个可选参数外,该参数定义了网络服务调用应该以同步还是异步模式执行:CrmRestKit.Create('Account',{Name:"foobar"},fal

javascript - 我可以用 Bluebird.js 做一个 "lazy" promise 吗?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我想要一个类似于promise的构造,它会等到then在它运行之前被调用。也就是说,如果我从未真正调用过then,则promise将永远不会运行。这可能吗?

javascript - 如何从 Promise 中提取数据

我有一个返回数据的promise,我想将其保存在变量中。由于异步性质,这在JavaScript中是不可能的吗?我是否需要使用onResolve作为回调?我能以某种方式使用它吗(例如用async/await包装它):const{foo,bar}=Promise.then(result=>result.data,errorHandler);//restofscript而不是这个?Promise.then(result=>{const{foo,bar}=result.data;//restofscript},errorHandler);注意:使用Bluebird库而不是原生实现,我不能从Pr

node.js - Blubird 从不点击 .catch 语句

我正在使用Node.js、Bluebird和Redis。鉴于:redisClient.hmsetAsync([key,'sn',sn,'make',make]).then(redisClient.setAsync(key+":radio",radioArray)).then(TMatic.send(res,200)).catch(function(e){console.log("Errorreadingfile",e);TMatic.send(res,500);});当“radioArray”为空时,redis抛出异常:UnhandledrejectionError:ERRwrongn

node.js - Express 中基于 Bluebird promise 的请求处理程序返回错误

我正在使用Express(4.x)、Redis(2.8)和Bluebird(2.x)-需要将多个Redis调用串在一起以返回响应:varpromise=require('bluebird');varredis=require('redis');varredis=redis.createClient(6379,process.env["REDIS_ENDPOINT"],{});promise.promisifyAll(redis);//GETexports.inOffers=function(req,res){returnredis.smembersAsync('advertisers'

redis - 使用 supertest 和 mocha 进行测试无法解决 promise

我正在使用promises使用mocha(3.2)和supertest(3.0)测试我的其余应用程序(在节点上使用hapi制作)。它在超时后停止并返回错误:Error:Timeoutof2000msexceeded.Forasynctestsandhooks,ensure"done()"iscalled;ifreturningaPromise,ensureitresolves.我已经尝试增加超时,但没有成功。如果我添加一个done()调用,我会得到:Resolutionmethodisoverspecified.SpecifyacallbackorreturnaPromise;notb

javascript - promise 的 MongoDB Node 驱动程序 .forEach() 返回什么样的 promise ?

我最近开始在我的Node.js项目中使用箭头函数、promises(bluebird)和MongoDB。正如您在下面看到的,我promise了所有mongodbnative驱动程序。到目前为止,就像一个魅力。现在,我想使用.forEach()方法,我不知道应该如何使用它。这是想法:varPromise=require("bluebird");varmongodb=Promise.promisifyAll(require("mongodb"));varMongoClient=mongodb.MongoClient;MongoClient.connect('the_URL_of_my_da