subtest1(conn, values)
е генератор. yield
генериращ обект не изпълнява тялото му. Тоест генерираният генератор остава спрян и ще изисква извикване на next()
метод за първия yield
да се достигне. Няма явни или неявни извиквания на next()
в Примерен код 2 и това е причината conn.query(...)
не се изпълнява.
Какво ще кажете за yield* subtest1(conn, values)
? От свързаната страница:
Той все пак ще изпълни subtest
мързеливо.
Алтернативно решение е да включите subtest
в обикновена функция и връща резултата от conn.query(...)
(ако приемем, че трябва да извършите само една заявка):
function subtest1(conn, values) {
return conn.query("INSERT INTO version SET ?", values);
}