我想随着时间的推移(每次发射之间间隔一秒钟)发射数组项,并且当所有项目都发射完后,重复一遍又一遍。
我知道该怎么做,但我想知道是否还有比..更简洁的内容。
const MY_ARRAY = ['one','two','three'];
const item$ = Rx.Observable.interval(1000).take(MY_ARRAY.length).repeat().map(x => MY_ARRAY[x]);
item$.subscribe(x => console.log(x));
Run Code Online (Sandbox Code Playgroud)
谢谢
输出是..
“一”
“二”
“三”
“一”
“二”
“三”
等等
编辑:
ATOW,这里的答案总结为..
const ARR = ['one', 'two', 'three'];
// TAKE YOUR PICK THEY ALL DO THE SAME
const item$ = Rx.Observable.interval(1000).map(i => ARR[i % ARR.length]);
// const item$ = Rx.Observable.interval(1000).zip(ARR, (a, x) => x).repeat();
// const item$ = Rx.Observable.interval(1000).zip(ARR).repeat().map(x => x[1]);
// const item$ = Rx.Observable.interval(1000).take(ARR.length).repeat().map(i => ARR[i]);
item$.subscribe((x) => {
console.log(x);
});
Run Code Online (Sandbox Code Playgroud) 我用Scrapy编写了一个爬虫。
我正在将数据写入数据库的管道中有一个函数。我使用日志记录模块记录运行时日志。
我发现当我的字符串有中文时logging.error()会抛出异常。但是搜寻器一直在运行!
我知道这是一个小错误,但是如果存在严重的异常,并且搜寻器继续运行,我会错过它。
我的问题是:是否存在可以Scrapy在出现异常时强制停止的设置?
鉴于两点:
const point1 = {x: 100, y: 0.95}
const point2 = {x: 75, y: 1.05}
Run Code Online (Sandbox Code Playgroud)
我需要知道当 x 等于某个任意值时 y 的值。
请假设存在线性关系。
例如,当 x 为 80 时,y 是多少?当 x 为 70 时,y 是多少?
有没有一个函数可以用来实现这个目的?
目前,我对数学解释感到困惑,并且理想地希望有一个 JavaScript 或 jQuery 函数,当给定任意 x 值时,它会返回 y 值。
我有2个字符串,我想要它们之间的git diff。我可以创建file1并添加string1作为其内容。
然后,我可以创建file2并添加string2作为其内容。然后我可以git diff file1和file2。
但是,鉴于我将字符串作为字符串(而不是文件内容),可以避免这些繁琐的步骤吗?有没有更简单的方法?
就像是:
git diff "my first string" "my second string" # obviously does not work
Run Code Online (Sandbox Code Playgroud) 我正在使用react-codemirror节点模块,如下所示:
<CodeMirror
className={className}
value={this.state.code}
onBeforeChange={this.onBeforeChange}
onChange={this.onChange}
options={options}
/>
Run Code Online (Sandbox Code Playgroud)
该change事件工作正常,但我似乎不能与挂钩beforeChange事件.谁知道我做错了什么?
我在课堂上声明了处理程序如下:
onBeforeChange(change) {
console.log('calling beforeChange');
}
onChange(newCode) {
this.setState({
code: newCode
});
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 5 升级到 Angular 6 并收到此错误:
src/app/services/http.service.ts(17,14) 中的错误:错误 TS2339:“可观察”类型上不存在属性“超时”。
我在 http.service.ts 中的代码:
import { throwError as observableThrowError, Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { environment } from "environments/environment";
import { AppService } from 'app/app.service';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class HttpService {
private baseUrl = environment.apiUrl;
constructor(private http: HttpClient, private appService: AppService) { }
public get(endpoint: string): Observable<any>{
return this.http.get(this.baseUrl + endpoint)
.timeout(this.appService.timeoutInterval)
.retryWhen(error => error.delay(this.appService.waitInterval)
.take(this.appService.numberOfRetries)
.concat(observableThrowError(new Error())))
.share();
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个长度为 100,000,000 的数组
当max接近数组末尾时,大约需要 8 秒:
return _.take(numbers, max)
Run Code Online (Sandbox Code Playgroud)
这大约需要 1 秒:
return numbers.slice(0, max)
Run Code Online (Sandbox Code Playgroud)
为什么性能差异如此巨大?谢谢
我正在使用 WebStorm 2019.1
我使用 Angular CLI 生成了一个项目。
一切正常,但我的项目中有一两个 .js 文件 - 例如protractor.conf.js
在 IDE 中,TSLint 对 .js 文件进行 linting 并显示大量红色。但我不希望 TSLint 对 .js 文件进行 lint 检查。
我知道我可以为此文件禁用 TSLint,但我宁愿通过tsconfig.json或tslint.json通过 WebStorm 设置执行此操作来正确配置我的项目。
我已经"tslint.jsEnable": false按照此处所述进行了尝试 - https://github.com/Microsoft/vscode-tslint/issues/261 - 但我认为这是针对不同的 IDE 的。有什么想法如何通过 WebStorm 设置来做到这一点tsconfig.json或tslint.json失败吗?
我正在使用以下方法使用装饰器来记忆 TypeScript getter,但想知道是否有更好的方法。我正在使用npm 中流行的memoizee包,如下所示:
import { memoize } from '@app/decorators/memoize'
export class MyComponent {
@memoize()
private static memoizeEyeSrc(clickCount, maxEyeClickCount, botEyesDir) {
return clickCount < maxEyeClickCount ? botEyesDir + '/bot-eye-tiny.png' : botEyesDir + '/bot-eye-black-tiny.png'
}
get leftEyeSrc() {
return MyComponent.memoizeEyeSrc(this.eyes.left.clickCount, this.maxEyeClickCount, this.botEyesDir)
}
}
Run Code Online (Sandbox Code Playgroud)
并且 memoize 装饰器是:
// decorated method must be pure
import * as memoizee from 'memoizee'
export const memoize = (): MethodDecorator => {
return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
const func = …Run Code Online (Sandbox Code Playgroud) 我们将在 Angular 12 上创建一个新项目。我需要建议来选择 UI 框架。
我们有 Bootstrap 5、Angular Material 和 primeNg 选项。
我做了以下研究:
Bootstrap 5 适合初学者开发人员,并且响应迅速,但对于创建任何复杂的组件没有用处。开发人员必须手动完成。
Angular Material 非常适合主题化,并提供良好的小部件,但没有任何类型的内置图表和响应式支持。
PrimeNg 适用于简单和复杂的组件,它提供所有类型的小部件图表、复杂的网格、选项卡。它拥有所有的软件包和响应能力。但是,它不提供任何定制。
这是我所做的分析。
我们的要求是我们不想创建不必要的复杂组件,以便我们可以专注于支持现成组件的数据并希望避免多个库。我们还需要 i18n 的支持和辅助功能支持。
任何建议或建议将不胜感激。
谢谢
angular ×5
javascript ×3
node.js ×2
rxjs5 ×2
typescript ×2
angular-cli ×1
angular5 ×1
angular6 ×1
bootstrap-5 ×1
codemirror ×1
diff ×1
git ×1
git-diff ×1
jquery ×1
lodash ×1
primeng ×1
reactjs ×1
rxjs ×1
rxjs6 ×1
scrapy ×1
tslint ×1
web-scraping ×1
webstorm ×1