2017-03-14 5 views
1

Ich versuche, eine Funktion zu erstellen, die ein xkcd-Kennwort wie folgt zurückgibt: bat-ship-eight-loophole. Die Bibliothek kann hier gefunden werden: https://github.com/fardog/node-xkcd-passwordFunktion, die undefined von einem Versprechen zurückgibt

Hier ist mein Code:

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()) 

glaube ich nicht mein Problem hat nichts mit der Bibliothek zu tun, obwohl

+0

'zurück p.generate (Optionen) ...' Sie müssen etwas zurückgeben, um etwas zurückzugeben –

+0

@JaromandaX Ich bin; 'return" Hallo "' – Hum4n01d

+0

Ich denke, Sie vermissen eine Rückkehranweisung 'return pw.generate()', um das Ergebnis der Verheißung zu empfangen –

Antwort

2

Promises sind ein Weg, asynchron zu vertreten Operationen, die möglicherweise noch nicht abgeschlossen sind. Um die Ausgabe zu erhalten, müssen Sie Ihre Funktion das Versprechen zurückgeben und then verwenden, um eine Rückruffunktion hinzuzufügen, die die Ausgabe übernimmt.

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

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

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

Ok danke! Ich werde es versuchen. Ich habe Ihre Frage bearbeitet, um die Extra-Return-Anweisung zu entfernen. – Hum4n01d

+0

Ich habe Ihre Bearbeitung abgelehnt, weil sie den Code geändert hat. Was möchten Sie protokolliert haben? – 4castle

+0

Ich möchte eine Funktion, die ein xkcd-Passwort zurückgibt. Dann möchte ich die Funktion aufrufen und das Passwort an der Konsole protokollieren – Hum4n01d

Verwandte Themen