【发布时间】:2017-12-28 09:44:48
【问题描述】:
我有一个画布饼图,我想使用量角器进行测试。 html 元素看起来像:
<canvas id ="my_pie" data-values="ctl.gfx.values" data-categories="ctl.gfx.categories"...
在我的量角器代码中,我能够评估每个属性数据值和数据类别如下:
...
var canvas = element(by.css("canvas#my_pie"));
...
canvas.evaluate("ctl.gfx.categories").then(function(c){
console.log(c);
});
canvas.evaluate("ctl.gfx.values").then(function(l){
console.log(v);
});
一切正常,数据已在控制台上注销,但如果我尝试返回数组本身,它们会以空数组的形式返回,我知道这与 promises 有关,因为这就是量角器评估函数所代表的但我无法弄清楚这一点,因为我对 JS、Jasmine 和 Protractor 完全陌生。
基本上预期的逻辑应该是这样的:
function getMyData(){
var myCategories = [];
var myValues = [];
canvas.evaluate("ctl.gfx.categories").then(function(c){
myCategories = c;
});
canvas.evaluate("ctl.gfx.values").then(function(v){
myValues = v;
});
// do something with both arrays, concat and return a result
//final statement would be a return statement.
}
我想做的是在一些处理后返回这些数组的结果,但对我来说,return 语句似乎总是首先运行,因此结果为空。
【问题讨论】:
标签: javascript angularjs promise jasmine protractor