草庐IT

微信小程序异步请求数据promise方法

在小程序中可以直接使用promise,我们需要做的就是在A函数中返回一个promise,在返回的promise中再进行获取数据的操作,把成功获取到的数据传入resolve中,把失败的结果传入reject,然后在B函数中调用A函数,调用后再使用.then和.catch分别对成功和失败的结果进行处理data:{brandimg:''//设置一个空变量,在请求数据后将请求结果赋值给该变量},getImgUrl(){returnnewPromise((resolve,reject)=>{wx.request({url:'http://daxun.kuboy.top/api/pro',success:r

javascript - 如何使用来自 when.js 的 promise 从 node.js 对 redis 进行两次查询

我有一个带有模块redis和when.js的node.js。如何使用when.js中的promise创建两个到redis的查询,然后运行另一个函数。现在我没有when.js的promise。redisClient.get("value_1",function(err,data_1){redisClient.get("value_2",function(err,data_2){another_function(data1,data2);});});请帮帮我。感谢您的回答。 最佳答案 我建议使用Bluebird(而不是when.js)及

node.js - NodeJS - Promise 在 redis 池等待中返回 undefined object

我有一个从redis-connection-pool创建的Redis池对象。它寻找一个键来获取所有图像标识符的数组。然后,对于每个元素,都会查找另一个Redis键,以便将值附加到一个JSON对象中。此对象作为对GET请求的响应返回。由于某些奇怪的原因(也许是Redis错误?),虽然使用正确的数据解析了Promise,但使用此Promise的函数总是看到一个undefined对象。原创尝试asyncfunctionallImageData(){varconfigPool=redisPools.configPool;varresp={};varimages=[];varimageDetai

javascript - 使用 promises 在 Node.js 中重写 Redis 调用

varQ=require('q');Q.nfcall(client.get("time_clock",function(err,reply){vartime=reply.toString();returntime;})).then(function(time){client.get("time_predicted",function(err,replier){mom=replier.toString();res.render('time',{watch:time,moment:mom});})}).fail(function(err){console.log('Error.')}).d

mysql - Node.js Promise 概念在 if else 条件下的 then block

我有一个场景,其中web服务需要检查redis中是否存在key(如果存在)将其作为响应提供,否则从mysql获取它,存储在redis中,然后将其作为响应提供。所以我使用的是promise概念,当我第一次调用returnnewSet_Data();它不会转到下一个thenblock它只是保持空闲。但是下一次,因为数据已经存在,所以returnnewSet_Data();没有执行这是正确的。但为什么当我调用returnnewSet_Data();时我第一次遇到问题,这不会用于nextthenblock。下面是我的代码constants.js文件varPromise=require('blu

javascript - Promisify 是做什么的?

我正在关注StephenGrinder教程,他开始使用Promisify。为此,他给出了非常模糊的解释,说redis需要一个回调函数,他发现veryuntidy+redis不支持NodeJS中的promises然后他做了这样的事constredis=require('redis')constredisURL='redis://127.0.0.1:6379';constredisClient=redis.createClient(redisURL);constutil=require('util')client.get=util.promisify(client.get)constcac

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

我有一个这样的对象数组:聚合结果给我一个结构相同的结果如下:results=[{id:1,test:biology,candidates:[{cid:11},{cid:12},{cid:13}]},{id:2,test:chemistry,candidates:[{cid:15},{cid:16},{cid:17}]},{id:3,test:physics,candidates:[{cid:1},{cid:6},{cid:7}]}];所以我需要在数组中循环,然后为每个候选人调用一个promise函数getTotalMarksPerCandidate(它有一个Promise.all并在一