下面是Ngrx示例中的代码:https://github.com/ngrx/example-app/blob/master/src/effects/book.ts我的问题是为什么在第一个@Effect中,它switchMap会在其他人使用时使用mergeMap.这是因为第一个@Effect正在处理网络,switchMap如果它正在运行,您可以取消之前的网络请求吗?
@Effect() search$ = this.updates$
.whenAction(BookActions.SEARCH)
.map<string>(toPayload)
.filter(query => query !== '')
.switchMap(query => this.googleBooks.searchBooks(query)
.map(books => this.bookActions.searchComplete(books))
.catch(() => Observable.of(this.bookActions.searchComplete([])))
);
@Effect() clearSearch$ = this.updates$
.whenAction(BookActions.SEARCH)
.map<string>(toPayload)
.filter(query => query === '')
.mapTo(this.bookActions.searchComplete([]));
@Effect() addBookToCollection$ = this.updates$
.whenAction(BookActions.ADD_TO_COLLECTION)
.map<Book>(toPayload)
.mergeMap(book => this.db.insert('books', [ book ])
.mapTo(this.bookActions.addToCollectionSuccess(book))
.catch(() => Observable.of(
this.bookActions.addToCollectionFail(book)
))
);
@Effect() removeBookFromCollection$ = this.updates$
.whenAction(BookActions.REMOVE_FROM_COLLECTION)
.map<Book>(toPayload)
.mergeMap(book => this.db.executeWrite('books', 'delete', [ book.id ])
.mapTo(this.bookActions.removeFromCollectionSuccess(book))
.catch(() => Observable.of( …Run Code Online (Sandbox Code Playgroud) 我正在运行一个简单的合并并期待没有冲突,我跑了 git merge my_dev_branch
但是我遇到了一个看起来很混乱的合并冲突,让我觉得我的分支历史并不清楚.我没有解决冲突,而是放弃合并,回到原来的状态.
两个问题:
git checkout HEAD <filename>在每个问题上运行每个文件来清理我的临时区域,这将等于放弃合并?我收到运行Heroku Postgres Basic的上述错误消息(根据此问题),并一直在尝试诊断问题.
其中一个建议是使用连接池,但似乎Rails内置了它.另一个建议是应用程序配置不正确并打开太多连接.
我的应用程序通过Active Record管理它的所有连接,我从Navicat直接连接到数据库(或者至少我以为我有).
我该怎么调试呢?
解析度
事实证明这是一个Heroku问题.来自Heroku支持:
我们在运行Basic数据库的服务器上检测到了一个问题.虽然我们查明并解决了这个问题,但我们建议您配置一个新的Basic数据库并使用PGBackups进行迁移,详情请参见 https://devcenter.heroku.com/articles/upgrade-heroku-postgres-with-pgbackups .这应该将您的数据库放在新服务器上.我为这次中断道歉 - 我们正在努力解决这个问题并防止它在未来发生.
我是 NestJS 的新手。我确信这是一个简单的问题,但我就是找不到答案。
在Nest 文档中,建议每个模型有一个模块。这涉及使用以下方法创建模型MongooseModule.forFeature:
imports: [MongooseModule.forFeature([{ name: 'Cat', schema: CatSchema }])]
Run Code Online (Sandbox Code Playgroud)
文档说:
如果您还想在另一个模块中使用模型,请将 MongooseModule 添加到其他模块的
exports部分CatsModule并导入CatsModule
我的问题是如何在新模块中引用模型。
我可以看到:
mongoose.model('Name', MySchema)import { Model } from 'mongoose'; @InjectModel('name') myModel: Model<MyInterface>),但感觉它重复了由 完成的模型创建MongooseModule.forFeature,因为它再次将 mongoose 模型与模式结合起来任何帮助表示赞赏!
我正在尝试根据我提供的价值提供其他服务ConfigService。
我遇到的问题是,在执行诸如findOne()(result is null)或countDocuments()(result is 0)之类的查询方法时,注入的猫鼬模型不会返回任何值。
我的服务类定义如下:
export class BaseService {
constructor(@InjectModel('Cat') public readonly catModel: Model<Cat>) {}
createService(option: string) {
if (option === 'OTHER') {
return new OtherService(this.catModel);
} else if (option === 'ANOTHER') {
return new AnotherService(this.catModel);
} else {
return new BaseService(this.catModel);
}
}
async findOne(id: string): Promise<Cat> {
return await this.catModel.findOne({_id: id});
}
async count(): Promise<number> {
return await this.catModel.countDocuments();
}
testClass() {
console.log('BASE SERVICE CLASS USED');
}
} …Run Code Online (Sandbox Code Playgroud) 继Devise和OmniAuth上的Railscast之后,我实现了一个OmniauthCallbacksController < Devise::OmniauthCallbacksController包含一个处理OmniAuth回调的方法:
def all
user = User.from_omniauth(request.env["omniauth.auth"])
if user.persisted?
sign_in_and_redirect user
else
session["devise.user_attributes"] = user.attributes
redirect_to new_user_registration_url
end
end
alias_method :facebook, :all
Run Code Online (Sandbox Code Playgroud)
routes.rb中:
devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks", :sessions => "sessions" }
Run Code Online (Sandbox Code Playgroud)
我想自定义这个,所以我试图用RSpec测试它.问题是如何测试此方法和重定向?
如果在规范中我把user_omniauth_callback_path(:facebook)它不抱怨路线不存在,但似乎并没有实际调用该方法.
根据这个答案 "控制器测试使用四个HTTP动词(GET,POST,PUT,DELETE),无论你的控制器是否是RESTful." 我试过get user_...等但是在这里确实抱怨路线不存在.事实上,如果我这样做,rake routes则显示此路线没有HTTP动词:
user_omniauth_callback [BLANK] /users/auth/:action/callback(.:format) omniauth_callbacks#(?-mix:facebook)
Run Code Online (Sandbox Code Playgroud)
你能看到我错过的东西吗?
编辑
所以在这个问题之后,调用该方法的一种方法是:
controller.send(:all)
Run Code Online (Sandbox Code Playgroud)
然而,我遇到了提问者遇到的同样错误:
ActionController::RackDelegation#content_type delegated to @_response.content_type, but @_response is nil
Run Code Online (Sandbox Code Playgroud) 我开始使用Rails(3.2.3),并且最近发现了rake notes功能.
这适用于.rb文件,其注释如下:
# TODO ...
Run Code Online (Sandbox Code Playgroud)
根据文档也适用于.erb文件.我试过在.html.erb视图文件中使用它,如下所示:
<!-- TODO ... -->
Run Code Online (Sandbox Code Playgroud)
但这不起作用.应该是?关于可能出错的任何想法?
感谢您的帮助!
我在此示例后面的d3.js中实现了HTML工具提示,使用如下代码:
function onmouseover(d) {
$("#tooltip").fadeOut(100,function () {
// generate tooltip
$("#tooltip").fadeIn(100);
});
}
function onmouseout() {
$("#tooltip").fadeOut(250);
}
Run Code Online (Sandbox Code Playgroud)
它有效,但表现出一种行为,即如果鼠标在多个节点上快速移动,工具提示可能仍然卡在页面上.上面的例子显示了相同的行为(快乐的摆动!).
经过一些研究,似乎nvd3使用调度很好地解决了这个问题.但是我并不清楚调度是如何工作的,基于这个问题,我想在这种情况下可能会有一个更简单的方法.
更新
此问题仅由fadeIn和fadeOut引起.如果将它们设置为零则没有问题.所以问题实际上是否可以设置它以便在存在另一个鼠标悬停/输出事件时中断fadeIn/out.
解析度
问题是只有一个工具提示.在JQuery fadeOut中间,这无法响应事件.答案是有多个工具提示,因此当旧的工具提示逐渐消失时,它可以逐渐消失.这可以通过两种方式实现:
我正在使用像这样的d3.js JSON回调在Rails中生成一个图表:
视图
d3.json(document.URL, function(data){
// generate chart
}
Run Code Online (Sandbox Code Playgroud)
调节器
def index
respond_to do |format|
format.html do
# return the HTML
end
format.json do
# return the JSON
end
end
end
Run Code Online (Sandbox Code Playgroud)
一切正常.但是,当用户离开此图表,然后使用其浏览器上的"后退"按钮导航回到它时,它们将显示JSON而不是HTML.
你能建议我怎么解决这个问题吗?
我为不同品牌的不同日期的不同帐户的粉丝数量设置了一组数据点:
|brand|account|date|fans|
|-----|-------|----|----|
|Ford |ford_uk|... |10 |
|Ford |ford_uk|... |11 |
|Ford |ford_us|... |20 |
|Ford |ford_us|... |21 |
|Jeep |jeep_uk|... |30 |
|Jeep |jeep_uk|... |31 |
|Jeep |jeep_us|... |40 |
|Jeep |jeep_us|... |41 |
Run Code Online (Sandbox Code Playgroud)
我试图按品牌返回粉丝总数,定义为每个品牌帐户的最大粉丝总和:
Ford: 32
Jeep: 72
Run Code Online (Sandbox Code Playgroud)
我尝试了这样的子查询:
(SELECT sum(account_fans)
FROM
(
SELECT max(fans) AS account_fans
GROUP BY account
) subquery_name
) AS total_fans
Run Code Online (Sandbox Code Playgroud)
问题是我得到:
错误:子查询使用外部查询中的未分组列帐户.
但我不想将外部查询分组.你能帮我吗?