我正在尝试为返回promise的对象运行测试套件.我希望将几个动作连在一起,并在它们之间进行短暂的超时.我认为返回承诺的"然后"调用将等待承诺在触发下一个链接然后调用之前完成.
我创建了一个函数
function promiseTimeout (time) {
return new Promise(function(resolve,reject){
setTimeout(function(){resolve(time);},time);
});
};
Run Code Online (Sandbox Code Playgroud)
尝试在承诺中包装setTimeout.
然后在我的测试套件中,我正在调用这样的东西......
it('should restore state when browser back button is used',function(done){
r.domOK().then(function(){
xh.fire('akc-route-change','/user/4/profile/new');
}).then(promiseTimeout(2000)).then(function(t){
xu.fire('akc-route-change','/user/6');
}).then(promiseTimeout(10)).then(function(t){
expect(xu.params[0]).to.equal(6);
history.back();
}).then(promiseTimeout(10)).then(function(){
expect(xu.params[0]).to.equal(4);
done();
});
});
Run Code Online (Sandbox Code Playgroud)
我可以在第一个xh.fire呼叫上设置断点,在呼叫时设置第二个xu.fire呼叫,并且当从第一个断点继续到第二个断点时,预期会有两秒的间隙.
相反,它立即到达第二个断点,并且该t点的值未定义.
我究竟做错了什么?
我正在使用标准的"sh"命令成功构建来自我的jenkinsfile管道上的docker镜像.
我希望能够尝试从docker/hub中提取图像,如果它失败了(因为它尚未保存),请构建它并将其推送到docker hub.
显然,我需要存储docker hub的凭据并将它们提供给docker login命令.
我的问题是我很困惑.有docker管道插件,但我认为它们是用于在docker容器中运行jenkins步骤 - 而不是我想要做的事情.此外,许多示例似乎是脚本化管道而不是声明性.
在简单的"步骤"术语中,我认为我想要做的事情
agent {
label 'pi'
}
steps {
sh 'docker login -u my-account -p xxxx'
sh 'docker pull my-account/image:version || (docker build -f dockerfile -t my-account/image:version && docker push my-account/image:version)'
....
}
Run Code Online (Sandbox Code Playgroud)
但我也怀疑我可能需要做类似的事情
steps {
script {
withDockerRegistry([credentialsId: 'something', url: 'docker.io/my-account']) {
sh 'docker pull my-account/image:version || (docker build -f dockerfile -t my-account/image:version && docker push my-account/image:version)'
....
}
}
Run Code Online (Sandbox Code Playgroud)
但我不想犯任何错误,并且除了这一点之外,还要搞一个目前工作正常的管道.
我是沿着正确的路线吗?
我看过几篇关于在Android上远程调试javascript代码的帖子,但是他们都错过了我想要做的事情.
我有一台Nexus 7,当我离开桌面时,我希望将它用作远程开发环境.我创建了一个chroot debian发行版来运行apache和php和git(通过ssh).这个chrooted环境从chroot environement外部安装/ sdcard目录的子目录.虚拟主机的Apache文档根目录指向此目录中的目录.在离开桌面之前,我可以将最新版本推送到平板电脑.当我返回git pull时可以得到我已经做过的事情.
然后我(当离开家并且没有连接到任何网络时)可以使用Android编辑器(使用920文本编辑器)编辑代码,但是然后运行浏览器来查看我使用localhost开发的内容apache虚拟主机选择此向上并显示它.
我正在开发的应用程序不是用于Android的 - 它最终用于桌面.但我希望能够像在桌面上一样调试它.断点和单步执行是首要的事情,但我也倾向于使用firebug中的html部分在编辑之前调整我的CSS.
有没有办法让chrome开发人员工具或firebug添加为firefox加载到将在android中运行的浏览器?
我正在为我的新聚合物项目建造脚手架,并正在考虑进行单元测试.我想我将使用业力/茉莉花组合.http://japhr.blogspot.co.uk/2014/03/polymer-page-objects-and-jasmine-20.html上有一篇有趣的帖子,我对它的理解足以让我开始,但关键问题我会我必须解决并且没有找到任何标准方法来模拟ajax调用.
当我在JQuery Mobile项目中使用jasmine,standalone时,我能够直接使用Jasmine SpyOn来模拟JQuery.ajax调用.聚合物有类似的东西吗?
我遇到了一个元素,<polymer-mock-data>但没有真正的文档,所以我无法弄清楚它们是否有帮助
我想创建一个用户只能实例化一次的元素.
到目前为止,我能想到的最好的方法是在匿名函数中定义元素,并在发现元素已经存在时抛出错误.有没有办法让它拒绝被创造?
(function(){
var singleton = false;
Polymer({
is:'my-singleton',
created:function(){
if(singleton) {
throw new Error ('only one my-singleton should be created');
}
singleton = this;
}
});
})();
Run Code Online (Sandbox Code Playgroud) 我正在尝试开始调试我的Polymer应用程序.我通过复制我的想法来制作它PolymerCLI Polymer init.
我不确定什么是加载服务工作者.开发的默认设置只是console.info()调用它被禁用以进行开发.
当我Polymer serve在localhost:8080上使用我的应用程序时,我得到了console.info消息,尽管我实际上没有在哪里加载文件service-worker.js.因为应用程序要复杂得多(我试图使用http/2),我也有自己的基于节点的服务器.当我运行它然后在浏览器中获取我的应用程序时,service-worker.js不会被加载并运行.
正在Polymer serve做什么来启用它?
我开始编写我的第一个 docker-compose.yml 文件来设置组成我的应用程序的服务组合(所有 Node-js)。其中一个服务(网络服务器 - 定制的,而不是快速的)既有它需要的大量模块,也有更多的 Bower_components。
为了提供关注点分离,以便我可以更紧密地控制版本控制,我想创建两个保存 node_modules 和 Bower_components 的命名卷,并将这些卷安装到 Web 服务器服务的相关目录中。
让我困惑的问题是如何在服务启动时填充这两个卷。我的困惑有两个原因:-
docker-compose使用该-d标志与docker run使用该标志的命令的行为-d- Web 服务显然需要保持运行(如果失败,确实需要重新启动),而可能填充一个或另一个卷的容器只运行一次,因为整个应用程序是通过命令启动的docker-compose up。我能控制这个吗?build该服务的命令。我实际上可以使用 aDockerfiles来运行npm install和bower install. 特别是,如果我更改了 Web 应用程序的源代码,但模块和 Bower_Components 没有更改,那么由于缓存的结果,此构建步骤是否会立即完成?我一直无法找到这种行为的例子,所以我很困惑如何去做。有人可以帮忙吗。
我正在创建一个包含默认(即未命名)插槽和一些命名插槽的自定义元素。我特别想设计一个命名插槽的内容,而不是其他任何一个。
有没有办法选择特定的命名插槽。
作为我想做的事情的一个例子,我的自定义元素包含一个对话框 - 像这样:
<dialog>
<slot></slot> <!-- general content -->
<div class="buttons">
<slot name="action"></slot>
<slot name="cancel"></slot>
</div>
</dialog>
Run Code Online (Sandbox Code Playgroud)
我想将所有操作按钮设置为纯色,将取消按钮设置为更褪色的颜色。
我有一个自定义元素,我想在等待ajax请求完成时使用.它由a组成<paper-spinner>,但它也有Polymer.IronOverlayBehavior.behavior.它由一个waiting属性驱动,我有一个观察者,所以当它设置时,叠加打开.
在操作上这很好.只是我的网站的背景颜色是错误的.
我正在尝试根据文档设置叠加层样式,并在模板中使用以下内容
<style >
:host{
--iron-overlay-backdrop-background-color: #fff;
}
</style>
Run Code Online (Sandbox Code Playgroud)
但我得到的只是黑色的默认样式,而不是我试图设置的白色.
我应该如何设置样式,以便我得到一个半透明的白色,而不是我目前得到的半透明黑色.
polymer ×4
docker ×2
javascript ×2
ajax ×1
android ×1
css ×1
debugging ×1
jenkins ×1
node.js ×1
polymer-cli ×1
promise ×1
unit-testing ×1