subtest1(conn, values) ジェネレーターです。 yield ジェネレータオブジェクトを実行しても、その本体は実行されません。つまり、生成されたジェネレーターは中断されたままであり、next()を呼び出す必要があります。 最初のyieldのメソッド 到達する。 next()への明示的または暗黙的な呼び出しはありません コードサンプル2 、これがconn.query(...)の理由です 実行されません。
yield* subtest1(conn, values)
?リンク先のページから:
subtestは引き続き実行されます 怠惰に。
別の解決策は、subtestをオンにすることです。 通常の関数に変換し、conn.query(...)の結果を返します (1つのクエリのみを実行する必要があると仮定):
function subtest1(conn, values) {
return conn.query("INSERT INTO version SET ?", values);
}