草庐IT

Bluebird

全部标签

javascript - 如何使用 Promises 链接和共享先前的结果

这个问题在这里已经有了答案:HowdoIaccesspreviouspromiseresultsina.then()chain?(17个回答)关闭6年前。我正在使用bluebird库,需要发出一系列HTTP请求,并且需要一些响应数据到下一个HTTP请求。我已经构建了一个函数来处理我的请求,称为callhttp()。这需要一个url和一个POST的正文。我这样调用它:varpayload='{"Username":"joe","Password":"password"}';varjoin=Promise.join;join(callhttp("172.16.28.200",payload

node.js - node redis bluebird - Promise.race 错误行为

我在NodeJs中使用redis和bluebird,但是Promise.race在这组工具中的表现不如预期。constredis=require('redis');constbluebird=require('bluebird');constclient=redis.createClient();bluebird.promisifyAll(redis.RedisClient.prototype);constvalues=[];constpromise1=client.setAsync("key1",1).then(()=>values.push(1));constpromise2=cl

javascript - 我如何处理 redis 和 bluebird 的错误?

我一直面临着redis和asyncawait的问题。我有带回调的旧redis.get:redis.get(token,async(error,result)=>{if(error){returnres.status(404).json({msg:'Confirmtokenisinvalid.'});}if(result===null){returnres.status(400).json({msg:'Confirmtokenisexpired.'});}})但我会想把他重构为async/awaitbluebird.promisifyAll(redis.RedisClient.proto

javascript - 使用 NODE JS 和 BLUEBIRD 从 REDIS 中获取数据

我正在尝试获取特定键模式的所有条目并使回调整齐地发生,我正在使用Bluebird。项目的nodejs的redis客户端是node_redis。redis客户端中的代码是-exports.getAllRedisKeysA=function(){varres=rclient.keysAsync("client*").then(function(data){//console.log(data);}).then(function(data){vararrayResp=[];for(varelementindata){rclient.hgetallAsync(element).then(fun

Node.js & Redis & For Loop with bluebird Promises?

我想要一个函数来创建一个看起来像这样的新JSON对象:{T-ID_12:[{text:"aaaaa",kat:"a"}],T-ID_15:[{text:"b",kat:"ab"}],T-ID_16:[{text:"b",kat:"ab"}]}thesenjsondata中的{text:"aaaaa",kat:"a"}和T-ID_12是数组Thesen_IDS的一个条目。到目前为止,我的解决方案是:functionmakeThesenJSON(number_these,Thesen_IDS){varthesenjsondata;varthesenids_with_jsondata="";

node.js - bluebird 协程与 Node redis

我正在尝试将noderedis与yield结合使用,但找不到合适的方法来实现这一点。基本上我希望能够等待promise解析以使我的异步代码看起来像同步代码(相当于c#yield)我做了一个像这样的简单测试,但它不起作用:constredisLib=require("redis")constPromise=require("bluebird")Promise.promisifyAll(redisLib)varexpress=require('express'),redis=redisLib.createClient({host:'127.0.0.1',port:6379}),constr

node.js - 使用 util.promisify 模拟 bluebird.promisifyAll

我正在尝试promise整个node_redisRedisClient对象使用Node8的util.promisify的方式类似于Bluebird的promisifyAll()的工作方式,但运气不佳。这是我迄今为止尝试过的:import*as_redisfrom'redis';import{promisify}from'util';constclient=_redis.createClient();constredis=Object.keys(client).reduce((c,key)=>{if(typeofc[key]==='function')c[key]=promisify(c

node.js - 等待所有 promise 在 nodejs 中用 Bluebird 完成

用bluebird在nodejs中等待所有promise完成的最佳方法是什么?假设我想从数据库中选择记录并将它们存储在redis中。我想出了这个loadActiveChannels:function(){returnKnex('game_channelsasch').where('ch.channel_state','>',0).then(function(channels){varpromises=[];for(vari=0;i不确定它是否像我预期的那样工作。所有条目都在redis中,但console.log显示空数组。它不应该包含一个“OK”数组,因为它是redis在履行promi

node.js - 是否仍然需要 promise MongoDB 驱动程序?

这个问题的答案是否仍然相关:HowcanIpromisifytheMongoDBnativeJavascriptdriverusingbluebird?我不知道什么时候更新的,但是MongoDB的2.0JS驱动程序在选项对象promiseLibrary中有一个属性:http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html而且大多数方法/函数都会返回一个promise,例如Cursor.toArray().但是,我找不到使用这个新选项的示例,但是使用它会不会更简单:MongoClient.connect('

node.js - 是否仍然需要 promise MongoDB 驱动程序?

这个问题的答案是否仍然相关:HowcanIpromisifytheMongoDBnativeJavascriptdriverusingbluebird?我不知道什么时候更新的,但是MongoDB的2.0JS驱动程序在选项对象promiseLibrary中有一个属性:http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html而且大多数方法/函数都会返回一个promise,例如Cursor.toArray().但是,我找不到使用这个新选项的示例,但是使用它会不会更简单:MongoClient.connect('