bluebird v3.x promisify changes
发布于 8 年前 作者 magicdawn 4016 次浏览 来自 分享

API

v2

const Promise = require('bluebird');
const Browserify = require('browserify');

// promisify bundle() of browserify
Browserify.prototype.bundleAsync = Promise.promisify(Browserify.prototype.bundle, Browserify.prototype);

v3

const Promise = require('bluebird');
const Browserify = require('browserify');

// promisify bundle() of browserify
Browserify.prototype.bundleAsync = Promise.promisify(Browserify.prototype.bundle, { ctx: Browserify.prototype });

其他

doc: http://bluebirdjs.com/docs/api/promise.promisify.html

  • ctx 指运行时的上下文
  • multiArgs = false, 使用 callback 的第一个success参数进行 fulfill, 像 request 库, 第一个参数为 err, 第二 & 第三个参数为success value. 这样 fullfill 的时候会是一个数组.
request('https://cnodejs.org', function(err, res, body){
})
request.getAsync = Promise.promisify(request.get, { multiArgs: true });
co(function* (){
    const successVal = yield request.getAsync('https://cnodejs.org');
	const res = successVal[0];
	const body = successVal[1];
})
回到顶部