在Observables forkJoin文档中,它说args可以是一个数组,但它没有列出这样做的例子:
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/forkjoin.md
我尝试过类似于我列出的功能(如下所示)但是想出了一个错误:
:3000/angular2/src/platform/browser/browser_adapter.js:76
EXCEPTION: TypeError: Observable_1.Observable.forkJoin is not a function
Run Code Online (Sandbox Code Playgroud)
我的功能的剪切版本如下:
processStuff( inputObject ) {
let _self = this;
return new Observable(function(observer) {
let observableBatch = [];
inputObject.forEach(function(componentarray, key) {
observableBatch.push(_self.http.get(key + '.json').map((res: Response) => res.json()));
});
Observable.forkJoin(
observableBatch
// );
).subscribe(() => {
observer.next();
observer.complete();
});
});
}
Run Code Online (Sandbox Code Playgroud)
我的问题的根与循环结束有关,然后按此处的要求继续:Angular2 Observable - 如何在循环之前等待循环中的所有函数调用结束?
但我还没有完全掌握forkJoin与数组的正确用法以及正确的语法.
我非常感谢您提供的帮助.
thirdFunction() {
let _self = this;
return Observable.create((observer) => {
// return new Observable(function(observer) {
...
observer.next(responseargs);
observer.complete();
});
}
processStuff(inputObject) …Run Code Online (Sandbox Code Playgroud) 我试图通过迁移当前用Angular1编写的应用程序来提高我对Angular2的了解
特别令我难过的一个特点.我试图复制一个功能,其中一个调用函数等待继续,直到它调用的函数完成了一个promises循环.在有角度的一个中,我调用的函数看起来基本上是这样的:
this.processStuff = function( inputarray, parentnodeid ) {
var promises = [];
var _self = this;
angular.forEach( inputarray , function( nodeid ) {
switch ( parentnodeid )
{
case ‘AAA’ : var component = _self.doMoreStuff( nodeid, parentnodeid ); break;
case ‘BBB’ : var component = _self.doMoreStuff( nodeid, parentnodeid ); break;
case ‘CCC’ : var component = _self.doMoreStuff( nodeid, parentnodeid ); break;
default : var component = null;
}
promises.push( component );
});
return $q.all(promises);
};
Run Code Online (Sandbox Code Playgroud)
它包含一个forEach循环,它调用另一个函数(doMoreStuff),该函数也返回一个promise,它将所有返回的promises存储在一个数组中.
使用Angular1,当我在另一个函数中调用processStuff时,我可以指望系统等到processStuff完成后再进入then块中的代码.IE:
service.processStuff( arraying, …Run Code Online (Sandbox Code Playgroud) 我无法找到关于如何在Heroku或任何其他托管服务提供商上托管angular2应用程序(希望使用Typescript)的教程.
理想情况下,我想找到一种在Heroku上运行这个repo的方法,但对Heroku上任何angular2/typescript repo的指导都会有所帮助:https://github.com/auth0/angular2-authentication-sample
我们将非常感谢您提供的任何指导或建议
我试图从github克隆一个项目,然后设置bower依赖项和grunt build/dev工具.当角度项目最初被推送到github时,某些目录和文件已被删除(因为它们列在gitignore文件中).我试图弄清楚如何复活本地运行项目所需的所有这些文件(我在浏览github时找到).
克隆项目后,我运行bower命令,以便通过bower.json读取:
% bower install
Run Code Online (Sandbox Code Playgroud)
然后我运行grunt命令:
% npm install -g grunt-cli
% npm install grunt --save-dev
Run Code Online (Sandbox Code Playgroud)
为什么在运行这些终端命令时不会自动创建Gruntfile.js?
它还挂起了与livereload相关的问题,但是在我运行这些问题后会消失:
% npm install --save-dev connect-livereload
% npm install
Run Code Online (Sandbox Code Playgroud)
当我使用这些yeoman和grunt命令从头开始一个项目时,它会自动创建Gruntfile.js,我可以成功地让项目在浏览器中自动加载:
% npm install -g generator-angular
% yo angular
% bower install angular-ui
% npm install --save-dev connect-livereload
% npm install
% grunt test
% grunt server
% grunt
Run Code Online (Sandbox Code Playgroud)
但我正在尝试掌握从github克隆项目然后在本地设置项目的技术.我很接近,但目前我也遇到了缺少Gruntfile.js的问题.我非常感谢您提供的任何指示.祝一切顺利,
本
我试图用Observables替换我的函数返回的所有promise.从这篇文章中,我了解到我不应再使用"new Observable" Observable.forkJoin和数组参数
什么是RxJS v5语法来实现这样才能实现异步等待?
thirdFunction() {
let _self = this;
return new Observable(function(observer) {
...
observer.next( responseargs );
observer.complete();
});
}
Run Code Online (Sandbox Code Playgroud)
非常感谢您提供的帮助.
我正在尝试使用 clojure neocons 在我的 Neo4j 数据存储中创建一个节点,但我遇到了一个我认为与格式化 json 相关的错误:
Exception: com.fasterxml.jackson.core.JsonGenerationException: Cannot JSON encode object of class: class recursiftion.dao_graph$create_node: recursiftion.dao_graph$create_node@32693b5
generate.clj:148 cheshire.generate/generate
generate.clj:119 cheshire.generate/generate
core.clj:31 cheshire.core/generate-string
core.clj:21 cheshire.core/generate-string
cypher.clj:51 clojurewerkz.neocons.rest.cypher/query
core.clj:2440 clojure.core/comp[fn]
dao_graph.clj:428 recursiftion.dao-graph/create-node
model.clj:131 recursiftion.model/createNode
controller.clj:206 recursiftion.controller/fn
core.clj:99 compojure.core/make-route[fn]
core.clj:45 compojure.core/if-route[fn]
core.clj:30 compojure.core/if-method[fn]
core.clj:112 compojure.core/routing[fn]
core.clj:2570 clojure.core/some
core.clj:112 compojure.core/routing
RestFn.java:139 clojure.lang.RestFn.applyTo
core.clj:632 clojure.core/apply
core.clj:117 compojure.core/routes[fn]
keyword_params.clj:32 ring.middleware.keyword-params/wrap-keyword-params[fn]
...
Run Code Online (Sandbox Code Playgroud)
根据错误报告,我怀疑这可能与柴郡有关。但是我很困惑,因为我没有在发生错误的文件中包含 Cheshire 库。
我把它作为我的包装器,因为我正在制作 cors POST & GET 请求,我需要从我的 controller.clj 返回 JSON
(def app
(-> (handler/api app-routes)
(middleware/wrap-json-body {:keywords? true})
(middleware/wrap-json-response)
(wrap-cors …Run Code Online (Sandbox Code Playgroud) 我正在尝试部署递归组件,如这些帖子和plnkr中所讨论的:
> `http://plnkr.co/edit/l7jsV0k7DbGJGXPFlSPr?p=preview`
Run Code Online (Sandbox Code Playgroud)
但是,提供的解决方案仅处理组件对象本身,并且不解决组件应该实例化的HTML标记的问题.
子组件如何<parent> ... </parent>在其模板中使用html标记?
我会非常感谢您的帮助,也许是您可以提供的笨拙/小提琴.
我有一个nosql数据存储的用例,但我不知道使用哪一个:
我的数据存储中的每个文档都有一个_id键和另一个键作为对象数组.此数组的每个对象哈希元素都有一个_elementid键和另一个用于颜色的键.
我希望我的服务器代理向数据存储发送更新请求,其中子字符串用作正则表达式,该子字符串限定_id与正则表达式匹配的所有文档.然后我想将一个元素推送到此输出的每个文档的数组上.这个新元素对于每个unshift都具有相同的颜色,但_elementid对于每个都是唯一的.
有没有提供这种存储过程的nosql选项?它对阵列的长度有限制吗?
*编辑*
(1)文件A:
{
_id : "this_is-an-example_10982029822",
dataList : [
{
_elementid : "999999283902830",
color : "blue",
}, {
_elementid : "99999273682763",
color : "red"
}
]
}
DOCUMENT B:
{
_id : "this_is-an-example_209382093820",
dataList : [
{
_elementid : "99999182681762",
color : "yellow"
}
]
}
Run Code Online (Sandbox Code Playgroud)
(2)更新请求的示例
(let [regex_ready_array ["this_is-an-example" "fetcher" "finder"]
fetch_query_regex (str "^" (clojure.string/join "|^" regex_ready_array))
element_template {
:_elementid { (rand-int 1000000000000000) }
:color "green"
}
updated_sister_objs (mc/bulk-update connection "arrayStore" {:_id {$regex fetch_query_regex }} …Run Code Online (Sandbox Code Playgroud) 据我所知,.toRx().subscribe(...)函数用于接收消息,而.next()函数用于BROADCAST消息
在这个plnkr(http://plnkr.co/edit/MT3xOB?p=info)中,您从一个似乎最初定义/派生的数据对象中调用.toRx().subscribe(...)函数.模板:
@Component({
selector : 'child-cmp',
template : '',
inputs : ['data']
})
class ChildCmp {
afterViewInit() {
this.data.toRx().subscribe((data) => {
console.log('New data has arrived!', data);
});
}
}
Run Code Online (Sandbox Code Playgroud)
在这个plnkr(http://plnkr.co/edit/rNdInA?p=preview)中,从evt对象及其发射器函数调用.toRx().subscribe(...)函数(源自注入的服务)组件的构造函数)
@Component({
selector : 'parent-cmp',
template : ''
})
class ParentCmp {
constructor(evt: EventService) {
evt.emitter.subscribe((data) =>
console.log("I'm the parent cmp and I got this data", data));
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以在服务本身的功能中进行BROADCAST,同时,组件可以接收消息而不依赖于返回的服务对象或模板数据对象来链接其.toRX() .subscribe(...)函数调用?
import {Injectable, EventEmitter} from 'angular2/angular2';
@Injectable()
export class DataService {
items:Array<any>;
dispatcher: EventEmitter = new EventEmitter(); …Run Code Online (Sandbox Code Playgroud) 在角度1中,我能够操纵http对象,因此帖子的请求标头包含如下身份验证:
$http.defaults.headers.common['Authorization'] = "Token " + sessionobject.token;
return $http({
method: 'POST',
url: SERVER_ENVIRONMENT + 'updatepath',
headers: {
'Content-Type': 'application/json',
'Data-Type': 'json'
},
data: {
id : id,
...
}
})
Run Code Online (Sandbox Code Playgroud)
你能帮我找到Angular 2中产生相同帖子请求的等价物吗?很多thnx提前
angular ×7
observable ×4
angularjs ×1
bower ×1
cassandra ×1
cheshire ×1
clojure ×1
components ×1
couchdb ×1
eventemitter ×1
fork-join ×1
gruntjs ×1
header ×1
heroku ×1
http ×1
javascript ×1
json ×1
mongodb ×1
neo4j ×1
recursion ×1
redis ×1
ring ×1
rxjs ×1
token ×1
typescript ×1