2016-11-04 4 views
0

Hallo erhalten i eine Generatorfunktion aufweisen, die eine Funktion wie diese zurückgeben,Wie innen Array.some

*getClassifier(classifier) { 
    if (!classifier) { 
     return async(function *() { 
      return true; 
     }); 
    } 

    if (classifier !== null && typeof classifier === "object") { 
     return false; 
    } 

    let name = classifier.name; 
    if (!this._classRegistry[name]) 
     throw new Error("Classifier " + name + " is not registered"); 
    let com = yield this.injector.resolve(this._classRegistry[name]); 

    return (message) => com.classify(message, classifier.options); 
} 

und i für diese Funktion einen Komponententest machen, die

result = yield someclass.getClassifiers(classifier)(message); 
sieht wie folgt aus

aber dann wurde ich verwirrt, wie man Ergebnis erwartet, indem man chai Beispiel expect(result).to.be.true;

irgendein Hinweis oder Lösung verwendet, wird geschätzt.

Antwort

0

Ich bin mir nicht ganz sicher, was Sie versuchen, hier zu tun, aber Sie können einen Versuch zum chai-generator Modul geben, dass Sie so etwas wie (von dem docs) erlaubt, zu tun:

expect(generator).to.yield(true); 

Übrigens denke ich, dass Sie den falschen Weg nutzen, der Ertrag wird innerhalb einer Generatorfunktion verwendet, um Werte zu erzeugen. Von außen müssen Sie einen Iterator verwenden, um alle von der Generatorfunktion erzeugten Werte zu durchlaufen.

Die Verwendung des Schlüsselwortes yield im zweiten Codeblock macht für mich keinen Sinn. Außerdem verstehe ich nicht, warum Sie Werte vom Generator zurückgeben. yield *value* soll in dieser Situation return *value* ersetzen.