如何通过在量angular器中使用promise来查询mysql数据库
如何通过在量angular器中使用promise来查询mysql数据库?
我想在testing执行过程中多次执行不同的查询,但我的executeSelectQuery函数在testing开始时执行,而不是结束。 我如何用承诺来克服这个问题?
我也需要访问executeSelectQuery中的对象,我不能。 函数返回undefined。
下面的代码是我的executeSelectQuery函数的样子:
function executeSelectQuery(sql){ connectDatabase.connection.query(sql, function(err, data) { var result; if (err) { throw new Error('[ FAIL ] - Unsuccessful query execution!!!'); } else{ result = data[0].user; log.info('[ SUCCESS ] - Query executed successfully: ' + sql + ' with the following result ==> ' + result); return result; } });
}
这就是我的testing:
it('Should navigate to webpage..', function(){ log.info("Test is being executed.."); login.goTo(parameters.url); login.login(parameters.username, parameters.password); helper.executeSelectQuery(query_select); });
只要让你的executeSelectQuery()
函数返回一个可以parsing数据的promise。
executeSelectQuery = (sql) => { return new Promise((resolve, reject) => { connectDatabase.connection.query(sql, (err, data) => { if(err) { reject(err); } resolve(data); }); }); }
然后在你的testing中解决它
executeSelectQuery().then((data) => { console.log(data); })
保持查询函数在最后一个单独的“it”块中调用 。
describe('Overall Test Suite',function() { var expectedResult; //global variable for all 'it' blocks inside suite. it('Should navigate to webpage..', function(){ log.info("Test is being executed.."); login.goTo(parameters.url); login.login(parameters.username, parameters.password); }); it('Executing Queries', function(){ expect(helper.executeSelectQuery(query_select)).toBeEqual(expectedResult);//let jasmine resolve the promise implicitly }); });
- 错误:(SystemJS)意外的标记<SyntaxError:意外的标记<eval(<anonymous>)Angular 2
- 如何创build一个准备发布到npm angular 2库
- 从脚本文件而不是从CLI运行Angular CLI脚本? 本地化/国际化
- Angular2错误self.parentView.context ..是未定义的
- 茉莉花testing与angular2和节点不工作
- 如何在NodeJs中loggingwebdrivertesting的video
- 量angular器:使用浏览器或browser.driver方法?
- Angular 4通用Node.js server.js错误
- 从Node-webkit运行量angular器