函数从promise中返回undefined

时间:2017-03-14 02:08:06

标签: javascript function

我试图创建一个返回xkcd密码的函数,如下所示:bat-ship-eight-loophole。可在此处找到该库:https://github.com/fardog/node-xkcd-password

这是我的代码:

var xkcdPassword = require('xkcd-password')
var pw = new xkcdPassword()

var options = {
  numWords: 4,
  minLength: 5,
  maxLength: 8
}

// or, with promises
function generateCode() {
    pw.generate(options).then(function (result) {
        return "hello"
    })
}

console.log(generateCode())

我不认为我的问题与图书馆有任何关系

1 个答案:

答案 0 :(得分:2)

Promises是一种表示可能尚未完成的异步操作的方法。为了获得输出,你必须让你的函数返回promise,并使用then添加一个获取输出的回调函数。

function generateCode() {
    return pw.generate(options);
}

generateCode().then(function(code) {
    console.log(code);
});

// pw.generate(options).then(console.log); // also works in this case