Angular 7 api没有被调用

2023-12-29

我正在尝试调用 API,但我认为出了问题,

import { map } from "rxjs/operators";
import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";

export class Message {
    constructor(public text: any, public sentBy: any) { }
}

@Injectable()
export class ChatService {
    constructor(public http: HttpClient) {
    }

    public sendMessage(message) {
        const usertext = new Message(message, 'user');
        console.log("message send",usertext);
       return this.http
            .post<any>(`http://locahost:3000/api/text_query`, usertext)
            .pipe(
                map(response => {
                    return response;
                })
            );
    }

}

没有获得任何登录信息Network tab铬。 我正在使用 Angular 7.0.1 和 Typescript: 3.1.3 这是我的应用程序组件文件

import {Component, OnInit} from '@angular/core';
import {ChatService} fom './chat.service';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
  message: string;
  constructor(private chatService: ChatService) {}

  sendMessage() {
    this.chatService.sendMessage(this.message).subscribe(res=>{
    })
  }
  ngOnInit() {
  }
}

该服务已正确添加到 app.module.ts 文件中


暴露的方法HttpClient通常返回一个 Cold Observable。这本质上意味着这些方法不会进行任何 API 调用,除非它们返回的 Observables 是subscribed to.

要解决您的问题:

import { map } from "rxjs/operators";
import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";

export interface Message {
  public text: any;
  public sentBy: any;
}

@Injectable()
export class ChatService {
  constructor(public http: HttpClient) {}

  public sendMessage(message) {
    const usertext: Message = { text: message, sentBy: 'user' };
    return this.http
      .post<any>(`http://locahost:3000/api/text_query`, usertext);
  }

}

在你的组件中:

...
import { ChatService } from "path-to-chat-service";

@Component({...})
export class ChatComponent {
  constructor(private chatService: ChatService) {}

  sendMessage(message) {
    this.chatService.sendMessage(message)
      .subscribe(res => console.log(res));
  }

  ...

}

有用的资源:

  1. 热观测值与冷观测值 https://medium.com/@benlesh/hot-vs-cold-observables-f8094ed53339- Ben Lesh(RXJS 负责人)。
  2. 冷与热的观测结果 https://blog.thoughtram.io/angular/2016/06/16/cold-vs-hot-observables.html- 思想传输。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 7 api没有被调用 的相关文章

随机推荐

  • MFC 获取文件夹

    嘿 我如何在 MFC 中获取所有文件夹的名称 有什么例子或者我应该研究哪些课程 任何提示将非常感激 我所看到的只是 CFile 据我所见 尽管非常非常少 它看起来没有能力做我想做的事情 所以请指导我 Thanks 调查C文件查找 http
  • 无法在设置中更改 Android 应用程序名称

    我使用 ADT Eclipse 中的向导创建了一个应用程序 我在 strings xml 中编辑了应用程序名称 这更改了启动器图标上的标签 但是 如果我进入 设置 gt 应用程序 它会显示旧名称 我尝试卸载该应用程序 清理并再次运行 但它仍
  • JavaScript - 无法正确添加 2 个数字

    我正在使用 Javascript 模拟计算器 用户可以在给定的文本框中输入 2 个数字 它将显示总和 乘积 差值和除法 这是我的功能 function calculate num1 num2 console log First Number
  • Python pip 无法在 Linux mint 上运行

    我已经遇到这个错误一年了 但仍然找不到解决方案 我正在使用 Linux Mint 17 3 每次我尝试使用 pip 安装某些东西时 都会遇到一堆异常 pip install U scikit learns Exception Traceba
  • 我可以从 .html 页面链接到 .ejs 页面吗?

    我正在制作一个网页 并且一直在 stackoverflow 上查找如何从 html 文件链接到 ejs 文件 人们在说以下内容 在index html中 li a href twitter Twitter a li 在 script js
  • 在 React 中单击组件外部时更改状态

    I have a dropdown as is shown in the following image 当我单击文件夹图标时 它会打开和关闭 因为showingProjectSelector属性处于设置为 false 的状态 constr
  • 熊猫由长到宽的重塑,通过两个变量

    我有长格式的数据 并且正在尝试将其重塑为宽格式 但似乎没有一种简单的方法可以使用熔化 堆叠 取消堆叠来执行此操作 Salesman Height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6
  • Java JUnit 测试无法使用 @Before 注释

    嘿 com 开始进行 Java JUnit 测试并遇到有关 Before 注释的问题 我的设置 爪哇9 日食氧气 J单元5 如果我这样进行测试 package junittesting import org junit jupiter ap
  • 当控制流关闭函数结束而没有返回时,为什么仍然有返回值?

    include
  • ASP.Net MVC JQuery Ajax 调用不返回任何内容

    是否可以通过ajax 在我的例子中使用JQuery 从视图到控制器进行不返回任何内容的调用 我只是在会话中设置一些变量 没有可显示的输出 我尝试将控制器上的方法设置为无效 但它不起作用 现在我已将方法返回标记为 JsonResult 并且我
  • Java Swing JLayeredPane 未显示

    我似乎遇到了一些重大问题JLayeredPane 我有一个BorderLayout 我希望西侧元素包含一些相互重叠的 JLayeredPane 这样我就可以在它们之间切换以显示正确的信息 西窗格的宽度应为 200 像素 并且应与整个窗口一样
  • 是什么原因导致这里“无法动态调度扩展方法”?

    编译错误 System Data SqlClient SqlConnection 没有名为 Query 的适用方法 但似乎有一个使用该名称的扩展方法 扩展方法无法动态分派 考虑转换动态参数或在不使用扩展方法语法的情况下调用扩展方法 现在 我
  • event.toElement 在 IE8 和 Firefox 中?

    我注意到在 Chrome 和 IE9 中 onmouseout事件有一个event toElement属性 这样您就可以确定鼠标现在指向哪个元素 我在 Firefox 中找不到类似的属性 不幸的是我不能使用 jQuery 来处理这些事件 我
  • gtk3 - 使用 GSimpleAction 时保留快捷键

    在 gtk3 中 可以使用以下命令将加速键和路径保存到文件中 gtk accel map https developer gnome org gtk3 stable gtk3 Accelerator Maps html gtk accel
  • Lua string.gsub 不打印匹配计数

    令人沮丧的是 我之前的任何 Lua 尝试都是在 Google 中广泛搜索更多 更少相同的 Lua 资源 然后导致一些多行代码来获取基本的东西 即我使用简单的命令从 Python 获取这些东西 同样 我想从字符串中替换子字符串 并使用即 st
  • Linux的socket实现在哪里?

    在C程序中 为了使用套接字 我们需要包括 include
  • 从 queryParams 角度 2 中删除参数

    我使用查询参数导航到应用程序中的某个页面 从 URL 获取参数后 我想将其删除 理想情况下我会这样 let userToken string this sub this router routerState queryParams subs
  • 在 Xcode 的“帐户”选项卡中刷新后,配置文件会失效

    不幸的是 这里陷入了令人沮丧的循环 这个问题大约一个月前在 Xcode 5 中开始出现 我一直在处理它 希望它会在 Xcode 6 中消失 但我仍然看到它发生在当前 App store 版本的 Xcode 6 中 当访问 Xcode 中的
  • 为什么会收到错误“‘Observable’类型上不存在属性‘map’”?

    这是一个在 Intellij15 上运行 typescript 的 angular2 项目 我已经导入了 rxjs add operator map 但仍然出现上述错误 这是我的代码 我已经检查过其他类似的问题 但没有找到解决方案 impo
  • Angular 7 api没有被调用

    我正在尝试调用 API 但我认为出了问题 import map from rxjs operators import Injectable from angular core import HttpClient from angular c