Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comportement de sous-fonction de rendement de générateur étrange Javascript

subtest1(conn, values) est un générateur. yield ing un objet générateur n'exécute pas son corps. Autrement dit, le générateur généré reste suspendu et nécessiterait un appel au next() méthode pour le premier yield être atteint. Il n'y a pas d'appels explicites ou implicites à next() dans Échantillon de code 2 , et c'est la raison pour laquelle conn.query(...) n'est pas exécuté.

Que diriez-vous de yield* subtest1(conn, values) ? À partir de la page liée :

Il exécutera toujours subtest paresseusement.

Une solution alternative consiste à activer subtest dans une fonction normale et renvoie le résultat de conn.query(...) (en supposant que vous n'ayez besoin d'effectuer qu'une seule requête) :

function subtest1(conn, values) {
    return conn.query("INSERT INTO version SET ?", values);
}