UPDATE
Это меня раздражало, что я не мог дать полный пример того, как использовать паруса с угловыми 2 с только plunker, поэтому я создал github repo, что дает полную картину того, как это может работать.
Я вижу, как связанный с вами вопрос связал вас, приведет вас по пути зоны. Тем не менее, вы можете подключить все это вместе без необходимости ручного возиться с зонами. Here - пример того, как вы можете реализовать sails.io с Angular2 в plunker. Это использует использование RxJS для создания типа observable. Вам также нужно реализовать другую версию Angular2 change detection (все это реализовано в плунтере).
Более подробно я расскажу в своем ответе на ваш linked question.
Что касается вашего дополнительного вопроса, я не уверен, есть ли способ интегрировать поток, я считаю, что одним из намерений RxJS было уменьшить использование обратных вызовов, которые, как представляется, все еще делают sails.io.
Выдача реализации sails.io в сервисе от плункера.
constructor() {
this._ioMessage$ = <Subject<{}>>new Subject();
//self is the window object in the browser, the 'io' object is actually on global scope
self.io.sails.connect('https://localhost:1337');//This fails as no sails server is listening and plunker requires https
this.listenForIOSubmission();
}
get ioMessage$(){
return this._ioMessage$.asObservable();
}
private listenForIOSubmission():void{
if(self.io.socket){//since the connect method failed in the constructor the socket object doesn't exist
//if there is a need to call emit or any other steps to prep Sails on node.js, do it here.
self.io.socket.on('success', (data) => {//guessing 'success' would be the eventIdentity
//note - you data object coming back from node.js, won't look like what I am using in this example, you should adjust your code to reflect that.
this._ioMessage$.next(data);//now IO is setup to submit data to the subscribbables of the observer
});
}
}
Я считаю, что синтаксис '>' обесценивается. Новый синтаксис будет 'this._ioMessage $ = new Subject() as Subject <{}>;' –
ktamlyn
Я попробую это, спасибо за ответ! – ktamlyn