不要怂,就是干,撸起袖子干!

Commit cae6b4dd by Andy Edwards Committed by GitHub

refactor(sqlite/query): simplify promise usage (#12157)

1 parent 303b453a
Showing with 20 additions and 22 deletions
...@@ -232,36 +232,34 @@ class Query extends AbstractQuery { ...@@ -232,36 +232,34 @@ class Query extends AbstractQuery {
} }
return new Promise(resolve => { return new Promise((resolve, reject) => {
const columnTypes = {}; const columnTypes = {};
conn.serialize(() => { conn.serialize(() => {
const executeSql = () => { const executeSql = () => {
if (sql.startsWith('-- ')) { if (sql.startsWith('-- ')) {
return resolve(); return resolve();
} }
resolve(new Promise((resolve, reject) => { const query = this;
const query = this; // cannot use arrow function here because the function is bound to the statement
// cannot use arrow function here because the function is bound to the statement function afterExecute(executionError, results) {
function afterExecute(executionError, results) { try {
try { complete();
complete(); // `this` is passed from sqlite, we have no control over this.
// `this` is passed from sqlite, we have no control over this. // eslint-disable-next-line no-invalid-this
// eslint-disable-next-line no-invalid-this resolve(query._handleQueryResponse(this, columnTypes, executionError, results));
resolve(query._handleQueryResponse(this, columnTypes, executionError, results)); return;
return; } catch (error) {
} catch (error) { reject(error);
reject(error);
}
} }
}
if (method === 'exec') { if (method === 'exec') {
// exec does not support bind parameter // exec does not support bind parameter
conn[method](sql, afterExecute); conn[method](sql, afterExecute);
} else { } else {
if (!parameters) parameters = []; if (!parameters) parameters = [];
conn[method](sql, parameters, afterExecute); conn[method](sql, parameters, afterExecute);
} }
}));
return null; return null;
}; };
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!