【发布时间】:2017-05-04 05:27:32
【问题描述】:
这是我为 Max Schwarzmueller 在 YouTube 上的 Angular2 教程中挑选的一些代码示例:https://www.youtube.com/playlist?list=PL55RiY5tL51olfU2IEqr455EYLkrhmh3n。
import {Injectable} from "angular2/core";
import {CONTACTS} from "./mock-contact";
@Injectable()
export class ContactService {
getContacts() {
return Promise.resolve(CONTACTS);
}
insertContact(contact: Contact) {
Promise.resolve(CONTACTS)
.then(
(contacts: Contact[]) => contacts.push(contact)
);
}
}
在此示例中,CONTACTS 对象是静态 JSON。 Promise 在这里不是必需的,但用于显示服务在现实世界中的使用情况。
我非常了解它,但我正在尝试将这个想法迁移到我使用 observable 而不是 Promise 的服务中。
我想更改 CONTACTS 数组,然后让 Observable 发出 .then 再次告诉所有观察者再做一次。
在 observable 上,这里有什么类似于 Promise.resolve 的? RxJS observables 的文档需要大量阅读。
如果这只是一个愚蠢的想法,或者有更好的方法,请告诉我。
【问题讨论】:
-
“CONTACTS 对象是静态 JSON。” 不,不是。 JSON 是一种用于数据交换的文本表示法。 (More.) 如果您正在处理 JavaScript 源代码,而不是处理 字符串,那么您就不是在处理 JSON。
-
好的。我想我的意思是它是从本地 js 文件中提取的数组,而不是 REST api。有什么更好的表达方式?
-
它来自哪里并不重要。它只是一个数组。
-
好的,但是它是一个JSON格式的数组。
-
重点是:不,不是。这是一个数组。解析前是JSON格式(文本),后来被解析了,就不再是JSON了。这是一个数组。我可以告诉你,因为你已经打电话给
push。字符串(文本)没有push方法。
标签: rxjs observable