3
新的observables。我正在使用ssh2
來獲取服務器上的文件/文件夾列表。我無法弄清楚如何讓我回來的數據作爲觀察到的,因爲所有的在線使用的例子http
,而不是一個第三方模塊。如何使異步數據可觀察?
如何設置此服務,以便我可以將列表恢復爲可觀察狀態?
import {Injectable, NgZone} from '@angular/core';
import {Observable} from 'rxjs';
var Client = require('ssh2').Client;
var user = require('credentials.json')
@Injectable()
export class ConnectionService {
public connSettings:any;
constructor(private zone: NgZone){
this.connSettings = {
host: user.url,
username: user.username,
password: user.password
};
this.openConnection();
}
openConnection() {
let remotePathToList = '/home/user';
var conn = new Client();
conn.on('ready',()=>{
conn.sftp((err:any, sftp:any)=>{
if (err) throw err;
sftp.readdir(remotePathToList, (err:any, list:any)=>{
conn.end();
//return observable data here
return list;
})
})
}).connect(this.connSettings);
}
}