我的 Protractor conf.js,onPrepare
函数需要发出一个看起来像这样的http请求,
onPrepare: function(done) {
request.get('http://pepper/sysid')
.end(function(err, resp){
if(err || !resp.ok){
log("there is an error " + err.message)
done()
}else{
global.sysid = resp.sysid
done()
}
})
像
done is not a function
一样抛出错误还有其他方法可以强制在测试开始执行之前在
onPrepare
中调用该回调吗? 最佳答案
onPrepare()
可以optionally return a promise在开始执行测试之前 Protractor 将解析的代码:
制作一个 Protractor promise
并从onPrepare()
返回:
onPrepare: function() {
var defer = protractor.promise.defer();
request.get('http://pepper/sysid').end(function(err, resp) {
if (err || !resp.ok) {
log("there is an error " + err.message);
defer.reject(resp);
} else {
global.sysid = resp.sysid;
defer.fulfill(resp);
}
});
return defer.promise;
},
关于javascript - 强制 Protractor 的onPrepare等待异步http请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34482583/