Promisify prompt.js

最初问GitHub


我正在努力promisify prompt.js。 谁能说我做错了什么?

var prompt = require('prompt'); var Promise = require("bluebird"); Promise.promisifyAll(prompt); prompt.start().then(function() { console.log("test"); return true; }); prompt.get(['message'], function(err, result) { if (err) { return onErr(err); } console.log('Write a push Message repositoryName:'); console.log(' Message: ' + result.message); return result; }).then(function(result) { console.log("hello"); return result; }); 

当你使用promisifyAll使用蓝鸟对对象进行promisifyAll ,会默认添加一个Async后缀。 所以,而不是调用get call getAsync

 prompt.start(); // start is synchronous, no need to `then` it prompt.getAsync(["message"]).then(function(response) { // note the suffix added console.log("got message", response.message); // work with message here, can use promise aggregation/chaining and use like // any other promise method }); 

引用文档:

promisified方法名称将是原始方法名称后缀“asynchronous” 。 对象的任何类属性(许多模块的主要导出都是这种情况)也被普遍使用,包括静态方法和实例方法。 Class属性是一个具有非空的.prototype对象的函数值的属性。 返回input对象。

(强调我的)