原帖GitHub
我正在尝试宣传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;
});
答案 0 :(得分:2)
使用promisifyAll
使用蓝鸟宣传对象时 - 默认情况下会添加Async
后缀。因此,而不是致电get
来电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
});
引用文档:
宣传的方法名称将是以“Async”为后缀的原始方法名称。对象的任何类属性(许多模块的主要导出都是这种情况)也是默认的,包括静态方法和实例方法。 Class属性是一个具有非空.prototype对象的函数值的属性。返回输入对象。
(强调我的)