我用的是需要挂钩的BabelJS(原名6to5)与运行节点的应用程序es6features:
// run.js
require("babel/register");
require("./app.js6");
Run Code Online (Sandbox Code Playgroud)
我打电话node run.js来运行我的app.js6.我需要安装BabelJS并提供run.js每个我想使用es6features项目.我更喜欢这样的电话nodejs6 app.js6.如何独立实现此系统(Unix和Windows)?
我喜欢在TypeScript中使用rx-node
import RxNode from 'rx-node';
Run Code Online (Sandbox Code Playgroud)
我使用npm 安装了rx-node
$ npm install rx-node --save
Run Code Online (Sandbox Code Playgroud)
我搜索了类型定义,但没有任何结果
$ typings search rx-node
No results found for search
Run Code Online (Sandbox Code Playgroud)
如何为已安装的npm模块rx-node定义自定义类型定义?我应该在哪里存储类型定义文件?如何配置TypeScript(tsconfig.json和typings.json)?
编辑:感谢Aleksey L.和David Bohunek,我实现了定义rx-node.d.ts如下所示
declare module "rx-node" {
import {Observable} from '@reactivex/rxjs';
import {ReadLine} from "readline";
function fromReadLineStream(stream: ReadLine): Observable<string>
}
Run Code Online (Sandbox Code Playgroud)
我安装了@activex/rxjs
npm install --save @reactivex/rxjs
Run Code Online (Sandbox Code Playgroud)
因为我收到了错误
node_modules\@reactivex\rxjs\dist\cjs\Observable.d.ts (10,66): Cannot find name 'Promise'. (2304)
Run Code Online (Sandbox Code Playgroud)
我将tsconfig.json中的目标更改为es6.
是否可以将数组的所有元素传递给ParamArray?
例如,我想将ParamArray传递给另一个ParamArray:
Sub test()
p1 "test", "banane", "birne"
End Sub
Sub p1(ParamArray keys() As Variant)
p2 keys 'should be the same as: p2 "test", "banane", "birne"
End Sub
Sub p2(ParamArray keys() As Variant)
Dim key As Variant
For Each key In keys
Debug.Print key 'Run-time error '13' Type mismatch (key is an array)
Next key
End Sub
Run Code Online (Sandbox Code Playgroud)
在这种情况下,ParamArray p2不包含元素keys,但它获取数组对象keys.因此,我必须检查,如果传递数组:
Sub test()
p1 "test", "banane", "birne"
p2 "test", "banane", "birne"
End Sub
Sub p1(ParamArray keys() As …Run Code Online (Sandbox Code Playgroud) 我使用启用了JavaScript源地图的Babel和Google Chrome开发者工具.鉴于此代码
function myFunc(elements) {
return elements
.map(element => element.value)
.filter(value => value >= 0);
}
Run Code Online (Sandbox Code Playgroud)
如何在执行lambda函数时暂停执行element => element.value?如果我在.map(element => element.value)它的行设置一个断点,它只会在执行map时暂停,但不会在执行lambda函数时暂停.
javascript lambda breakpoints google-chrome-devtools source-maps
我想推迟采取行动.因此,我使用的WriterT应该记住我的行为tell.
module Main where
import Control.Exception.Safe
(Exception, MonadCatch, MonadThrow, SomeException,
SomeException(SomeException), catch, throwM)
import Control.Monad.IO.Class (MonadIO, liftIO)
import Control.Monad.Trans.Writer (WriterT, runWriterT, tell)
type Defer m a = WriterT (IO ()) m a
-- | Register an action that should be run later.
defer :: (Monad m) => IO () -> Defer m ()
defer = tell
-- | Ensures to run deferred actions even after an error has been thrown.
runDefer :: (MonadIO m, MonadCatch m) …Run Code Online (Sandbox Code Playgroud) 我在构建脚本中检查全局安装的 Node 版本:
var semver = require('semver');
var packageJson = require('./package.json');
var expectedVersion = packageJson.engines.node;
var actualVersion = process.version;
if (semver.neq(expectedVersion, actualVersion)) {
fail('Incorrect Node version: expected ' + expectedVersion + ', but was ' + actualVersion);
}
Run Code Online (Sandbox Code Playgroud)
我想以类似的方式检查全局安装的 npm 版本。如何检索全局安装的 npm 版本?
我正在尝试为Tampermonkey编写脚本,以防止执行特定的内联脚本标签。页面的主体看起来像这样
<body>
<!-- the following script tag should be executed-->
<script type="text/javascript">
alert("I'm executed as normal")
</script>
<!-- the following script tag should NOT be executed-->
<script type="text/javascript">
alert("I should not be executed")
</script>
<!-- the following script tag should be executed-->
<script type="text/javascript">
alert("I'm executed as normal, too")
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
我试图script使用Tampermonkey脚本删除该标签,但是如果我在上运行它 document-start或document-body该script标签尚不存在。如果我在运行它,document-end或者要删除document-idle的script标签在执行Tampermonkey脚本之前运行。
如何防止执行script标签?
注意:script我要阻止执行的实际标签包含window.location = 'redirect-url'。因此,在这种情况下,防止重新加载也就足够了。
版本: …
我在RxJS中遇到了一个特殊的生产者消费者问题:生产者慢慢生产元素.消费者正在请求元素,并且经常必须等待生产者.这可以通过压缩生产者和请求流来实现:
var produce = getProduceStream();
var request = getRequestStream();
var consume = Rx.Observable.zipArray(produce, request).pluck(0);
Run Code Online (Sandbox Code Playgroud)
有时请求会中止.生成的元素只应在未中止请求后使用:
produce: -------------p1-------------------------p2--------->
request: --r1--------------r2---------------r3-------------->
abort: ------a(r1)------------------a(?)------------------>
consume: ------------------c(p1, r2)-------------c(p2, r3)-->
Run Code Online (Sandbox Code Playgroud)
第一个请求r1将使用第一个生成的元素p1,但在它可以消耗之前r1被中止.生成并在第二次请求时消耗.第二次中止被忽略,因为之前没有发出未答复的请求.第三个请求必须等待下一个生成的元素,并且在生成之前不会中止.因此,在生产后立即消耗.a(r1)p1p1c(p1, r2)r2a(?)r3p2p2p2c(p2, r3)
我怎样才能在RxJS中实现这一目标?
编辑:
我创建了一个例子与jsbin一个QUnit测试.您可以编辑该功能createConsume(produce, request, abort)以尝试/测试您的解决方案.
该示例包含先前接受的答案的函数定义.
我在 Vagrant 盒子 boot2docker 中将 Drupal 作为 Docker 容器运行(在 Windows 8.1 上):
Vagrantfile(我的 Docker 容器)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.provider "docker" do |docker|
docker.vagrant_vagrantfile = "host/Vagrantfile"
docker.image = "drupal"
docker.ports = ['80:80']
docker.name = 'drupal-container'
end
config.vm.synced_folder ".", "/vagrant", type: "smb", disabled: true
end
Run Code Online (Sandbox Code Playgroud)
主机/Vagrantfile(主机)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.hostname = "docker-host"
config.vm.box = "hashicorp/boot2docker"
config.vm.network "forwarded_port", guest: 80, host: …Run Code Online (Sandbox Code Playgroud) The example of the release notes of TypeScript 4 shows how to use variadic tuple types to avoid several overload definitions. I guess it should be possible to type this pipe function for an arbitrary amount of arguments
type F<P, R> = (p: P) => R
type Pipe2<T1, T2, R> = [F<T1, T2>, F<T2, R>]
type Pipe3<T1, T2, T3, R> = [F<T1, T2>, ...Pipe2<T2, T3, R>]
type Pipe4<T1, T2, T3, T4, R> = [F<T1, T2>, ...Pipe3<T2, T3, T4, R>]
function …Run Code Online (Sandbox Code Playgroud) javascript ×4
node.js ×3
typescript ×2
babeljs ×1
boot2docker ×1
breakpoints ×1
docker ×1
drupal ×1
ecmascript-6 ×1
haskell ×1
html ×1
lambda ×1
npm ×1
paramarray ×1
parameters ×1
rxjs ×1
source-maps ×1
ssh ×1
tampermonkey ×1
vagrant ×1
vba ×1