jjzjj

promisify

全部标签

javascript - 当回调采用多个参数时如何 promise 一个函数

有什么方法可以在回调接受两个以上参数的情况下promisify一个函数?一个例子是node的fs.read,回调的三个参数是err、bytes和data。data参数没有传递给then函数,所以这个记录未定义:varfs=require('fs');varPromise=require('bluebird');varopen=Promise.promisify(fs.open);varread=Promise.promisify(fs.read);open('test.txt','r').then(function(fd){varbuffer=newBuffer(1024);read(

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 - 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

javascript - 使用 sinon 和 bluebird 对 Promisified 函数进行 Stub

在我要测试的文件中,我有以下代码:varhttpGet=Promise.promisify(require("request").get);httpGet(endpoint,{auth:{bearer:req.body.access_token},json:true}).then(...)现在,在我的测试中,我想确保httpGet被调用一次,并确保参数有效。在被promise之前,我的测试是这样的:beforeEach(function(){request.get=sinon.stub().yields(null,null,{error:"testerror",error_descri

javascript - 使用 sinon 和 bluebird 对 Promisified 函数进行 Stub

在我要测试的文件中,我有以下代码:varhttpGet=Promise.promisify(require("request").get);httpGet(endpoint,{auth:{bearer:req.body.access_token},json:true}).then(...)现在,在我的测试中,我想确保httpGet被调用一次,并确保参数有效。在被promise之前,我的测试是这样的:beforeEach(function(){request.get=sinon.stub().yields(null,null,{error:"testerror",error_descri

node.js - 功能有效,但在使用 util.promisify() 时失败?

我有一些使用node-bing-api的代码.这是错误优先且完美运行,但我想将其转换为使用Promises(和await)。我正在使用Node8和util.promisify。在下面的代码中,Bing.web是常规的err-first代码,searchBing是promisified版本。varfindParentDir=require('find-parent-dir'),configDir=findParentDir.sync(__dirname,'config.js'),config=require(configDir+'config.js'),util=require('uti

node.js - 功能有效,但在使用 util.promisify() 时失败?

我有一些使用node-bing-api的代码.这是错误优先且完美运行,但我想将其转换为使用Promises(和await)。我正在使用Node8和util.promisify。在下面的代码中,Bing.web是常规的err-first代码,searchBing是promisified版本。varfindParentDir=require('find-parent-dir'),configDir=findParentDir.sync(__dirname,'config.js'),config=require(configDir+'config.js'),util=require('uti

javascript - NodeJs util.promisify 不是一个函数

我正在尝试promisify一个mysql函数,但是当我运行它时,控制台显示此错误util.Promisify不是函数。这是我的代码:varutil= require('util');varmysql=require('mysql');varconection=mysql.createConnection({ host:'localhost', user:'root', password:'616897', database:'proyect' });varquery=util.promisify(conection.query);query(data.va

javascript - NodeJs util.promisify 不是一个函数

我正在尝试promisify一个mysql函数,但是当我运行它时,控制台显示此错误util.Promisify不是函数。这是我的代码:varutil= require('util');varmysql=require('mysql');varconection=mysql.createConnection({ host:'localhost', user:'root', password:'616897', database:'proyect' });varquery=util.promisify(conection.query);query(data.va

node.js - 使用 node-redis 和 node 8 util.promisify

Node-v:8.1.2我使用redis客户端node_redis使用Node8util.promisify,没有blurbird。回调redis.get没问题,但是promisify类型得到错误信息TypeError:Cannotreadproperty'internal_send_command'ofundefinedatget(D:\Github\redis-test\node_modules\redis\lib\commands.js:62:24)atget(internal/util.js:229:26)atD:\Github\redis-test\app.js:23:27a
12