【问题标题】:object.forEach in typescript打字稿中的 object.forEach
【发布时间】:2019-02-28 17:09:45
【问题描述】:

在其中一篇文章中,我发现了这样的代码语句。

this.http.post(`/rate`, {id: talk.id, yourRating: rating}).forEach(() => {});

我知道forEach 已应用于一个对象,但forEach 中的空(){} 在做什么?什么意思?

【问题讨论】:

  • ()=>{} 是一个function,它不接受任何参数并且不返回任何内容。这似乎是一个基本的 JavaScript 语法问题。您需要更具体的内容吗?
  • 基于this.http.post(),您可能正在使用 Angular 和 RxJS。你通常不会(如果有的话)在Observable<T> 上使用forEach()

标签: javascript typescript foreach


【解决方案1】:

发布这个是为了回答,但希望你已经从 cmets 那里得到了一些想法。

() => {} 是一个空函数。它什么也不做。您可以通过在花括号内放置一些东西来充分利用forEach 方法,所以:

this.http.post(`/rate`, {id: talk.id, yourRating: rating}).forEach((someItem) => {
     console.log(someItem);
     // or something else!
});

进一步细分:

  1. this.http.post(...) - 触发一个 HTTP 请求,最有可能以数组的形式返回结果(它有一个 foreach 方法)
  2. .forEach - 接受在每次迭代时触发的回调 (['1', '2', '3'] => callback(1); callback(2); callback(3);)
  3. () => {} - 这是你的回电。具体语法为an arrow function。您可能更熟悉标准的 function() { ... },它也适用于此。

希望对您有所帮助。

【讨论】:

  • http.post 方法中的第二个参数是我们将参数发送到后端的主体对吧?那么为什么要为每个应用一个空白呢? for each 应该应用于接收到的结果,就像成功或失败一样。或者它是否附加到内部调用的成功事件?如果我错了,请纠正我,因为我只是从这个开始。
  • 糟糕的是,我刚刚注意到 foreach 应用于 http.post 调用的响应。明白了。
  • @Subbu 是的!将所有内容都放在一行中可能会非常令人困惑,很多时候我会在this.http.post 的结尾和.forEach 的开头之间添加一个新行,这样在视觉上会更明显地发生了什么。恭喜你弄明白了! :)
猜你喜欢
  • 1970-01-01
  • 2020-09-19
  • 2023-03-07
  • 2012-09-23
  • 2021-07-02
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 2021-11-25
相关资源
最近更新 更多