我已经回答了我的问题 - 在promisify中使用multiArgs选项,然后使用spread而不是:
var fs = require('fs'); var Promise = require('bluebird'); var open = Promise.promisify(fs.open); var read = Promise.promisify(fs.read, {multiArgs:true}); open('test.txt', 'r') .then(function(fd) { var buffer = new Buffer(1024); read(fd, buffer, 0, buffer.length, null).spread(function(bytes, data) { console.log(data); }); });