在Dockerfile中,我有
COPY . .
Run Code Online (Sandbox Code Playgroud)
我想排除整个目录,在我的例子中,node_modules目录.
像这样的东西:
COPY [all but **/node_modules/**] .
Run Code Online (Sandbox Code Playgroud)
Docker可以实现吗?
在JS中,似乎无法检查传递给函数的参数是否实际上是"错误"类型或错误实例.
例如,这是无效的:
typeof err === 'error'
因为只有6种可能的类型(以字符串的形式):
typeof运算符将类型信息作为字符串返回.typeof返回有六个可能的值:
"number","string","boolean","object","function"和"undefined".
但是,如果我有一个这样的简单用例怎么办:
function errorHandler(err) {
if (typeof err === 'error') {
throw err;
}
else {
console.error('Unexpectedly, no error was passed to error handler. But here is the message:',err);
}
}
Run Code Online (Sandbox Code Playgroud)
那么确定参数是否是Error实例的最佳方法是什么?
是instanceof任何帮助的运营商?
我试图了解它们之间的区别
git push -f
Run Code Online (Sandbox Code Playgroud)
和
git push --force-with-lease
Run Code Online (Sandbox Code Playgroud)
我的猜测是,如果遥控器没有本地分支没有的提交,后者只会推送到遥控器?
如果有更好的方式来表达问题,lmk,但希望它很清楚.
我读到由async关键字标记的异步函数隐式返回一个promise:
async function getVal(){
return await doSomethingAync();
}
var ret = getVal();
console.log(ret);
Run Code Online (Sandbox Code Playgroud)
但这不是连贯的...假设doSomethingAsync()返回一个promise,而await关键字将返回promise中的值,而不是promise itsef,那么我的getVal函数应返回该值,而不是隐式promise.
那究竟是什么情况呢?由async关键字标记的函数是否隐式返回promises,还是我们控制它们返回的内容?
也许如果我们没有明确地回报某些东西,那么它们会隐含地回报一个承诺......?
更清楚的是,上述和之间存在差异
function doSomethingAync(charlie) {
return new Promise(function (resolve) {
setTimeout(function () {
resolve(charlie || 'yikes');
}, 100);
})
}
async function getVal(){
var val = await doSomethingAync(); // val is not a promise
console.log(val); // logs 'yikes' or whatever
return val; // but this returns a promise
}
var ret = getVal();
console.log(ret); //logs a promise
Run Code Online (Sandbox Code Playgroud)
在我的概要中,行为确实与传统的return语句不一致.看来,当您从 …
我刚读这篇精彩的文章 -
https://www.promisejs.org/generators/
它清楚地突出了这个函数,它是一个处理生成器函数的辅助函数:
function async(makeGenerator){
return function () {
var generator = makeGenerator.apply(this, arguments);
function handle(result){
// result => { done: [Boolean], value: [Object] }
if (result.done) return Promise.resolve(result.value);
return Promise.resolve(result.value).then(function (res){
return handle(generator.next(res));
}, function (err){
return handle(generator.throw(err));
});
}
try {
return handle(generator.next());
} catch (ex) {
return Promise.reject(ex);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我假设或多或少是async关键字的实现方式async.所以问题是,如果是这种情况,那么async关键字和await关键字之间的区别是什么呢?是否await总是把东西放到一个承诺,而yield没有这样的保证?这是我最好的猜测!
你还可以看到async/await与本文中的生成器的yield相似,他描述了'spawn'函数:https://jakearchibald.com/2014/es7-async-functions/
我需要串行运行两个需要从同一个流中读取数据的命令.将流传输到另一个流后,缓冲区被清空,因此我无法再次从该流中读取数据,因此这不起作用:
var spawn = require('child_process').spawn;
var fs = require('fs');
var request = require('request');
var inputStream = request('http://placehold.it/640x360');
var identify = spawn('identify',['-']);
inputStream.pipe(identify.stdin);
var chunks = [];
identify.stdout.on('data',function(chunk) {
chunks.push(chunk);
});
identify.stdout.on('end',function() {
var size = getSize(Buffer.concat(chunks)); //width
var convert = spawn('convert',['-','-scale',size * 0.5,'png:-']);
inputStream.pipe(convert.stdin);
convert.stdout.pipe(fs.createWriteStream('half.png'));
});
function getSize(buffer){
return parseInt(buffer.toString().split(' ')[2].split('x')[0]);
}
Run Code Online (Sandbox Code Playgroud)
请求抱怨这个
Error: You cannot pipe after data has been emitted from the response.
Run Code Online (Sandbox Code Playgroud)
并改变inputStreamfs.createWriteStream当然会产生同样的问题.我不想写入文件,而是以某种方式重用请求生成的流(或其他任何内容).
有没有办法在完成管道后重复使用可读流?完成上述例子的最佳方法是什么?
我在去年对JavaFX做了一些研究,甚至用它构建了一些基本的桌面应用程序.
它被描述为用于创建RIA(富Internet应用程序).
http://en.wikipedia.org/wiki/Javafx
但它真的可以通过网络浏览器部署吗?我只通过可执行的JAR文件部署它.
通过Web浏览器部署有多容易?它有用吗?有任何人对此有经验吗?
http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm
如何在不是线程的对象上调用wait()和notify()方法?那真的没有意义,是吗?
当然,它必须有意义,因为这两种方法可用于所有Java对象.有人可以提供解释吗?我无法理解如何使用wait()和之间的线程之间进行通信notify().
我有这个简单的情况,我想重构角色变量的名称:
看起来VSCode很聪明,知道不应该触及网址中的"角色".
我只想在一个文件中,在一个范围内重构变量的名称,而不是整个文件,绝对不是多个文件!
如果我使用ctrl+H它,它将带我进入一个菜单,默认情况下在多个文件或整个单个文件中重构名称,但我只想在单个函数范围内重构名称!
我正在使用Angular with Material
<button mat-icon-button><mat-icon svgIcon="thumb-up"></mat-icon>Start Recording</button>
Run Code Online (Sandbox Code Playgroud)
我正在尝试添加一个图标到按钮,但我无法弄清楚如何做到这一点,并找不到这方面的文档.
https://material.angular.io/components/button/api
看文件,有这样的:
该按钮具有以下html:
<a _ngcontent-c1="" aria-label="Angular Material" class="docs-button mat-button" mat-button="" routerlink="/" tabindex="0" aria-disabled="false" href="/"><span class="mat-button-wrapper">
<img _ngcontent-c1="" alt="angular" class="docs-angular-logo" src="../../../assets/img/homepage/angular-white-transparent.svg">
<span _ngcontent-c1="">Material</span>
</span> <div class="mat-button-ripple mat-ripple" matripple=""></div><div class="mat-button-focus-overlay">
</div>
</a>
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
javascript ×4
node.js ×4
angular5 ×1
async-await ×1
browser ×1
docker ×1
docker-copy ×1
dockerfile ×1
ecmascript-6 ×1
generator ×1
git ×1
git-push ×1
java ×1
javafx ×1
notify ×1
pipe ×1
ria ×1
stream ×1
wait ×1