【问题标题】:(intermediate value).get is not a function(中间值).get 不是函数
【发布时间】:2022-08-23 17:51:58
【问题描述】:

我正在尝试将一个 API 与我的 Angular 项目集成,该项目显示我的连接的互联网速度。这是一个由 fast.com 提供的 api - https://www.npmjs.com/package/fast-speedtest-api 我正在尝试按照 NPM 包的文档中提到的方式进行操作。我收到的错误是

app.component.ts:18 (intermediate value)(intermediate value)(intermediate value).get is not a function

根据我在谷歌上的理解,它一定是语法错误,但我在我的打字稿文件中没有发现任何错误。下面是我的打字稿代码

const https = require(\'https\');
const http = require(\'http\');
const Timer = require(\'./Timer\');
const ApiError = require(\'./ApiError\');

    const FastSpeedtest = require(\"fast-speedtest-api\");
     
    let speedtest = new FastSpeedtest({
        token: \"YXNkZmFTOKENoYXNkZmhrYWxm\", // required
        verbose: false, // default: false
        timeout: 10000, // default: 5000
        https: true, // default: true
        urlCount: 5, // default: 5
        bufferSize: 8, // default: 8
        unit: FastSpeedtest.UNITS.Mbps // default: Bps
    });
     
    speedtest.getSpeed().then((s :any) => {
        console.log(`Speed: ${s} Mbps`);
    }).catch((e :any) => {
        console.error(e.message);
    });

以防万一,我还检查了 npm 包本身的异步方法。我在那里也没有发现错误。

/**
 * Get data from the specified URL
 *
 * @async
 * @param {string} url The URL to download from
 * @return {Promise} The request and response from the URL
 */
async get(url) {
    return new Promise((resolve, reject) => {
        const request = (this.https ? https : http).get(url, (response) => {
            if (response.headers[\'content-type\'].includes(\'json\')) {
                response.setEncoding(\'utf8\');
                let rawData = \'\';
                response.on(\'data\', (chunk) => {
                    rawData += chunk;
                });
                response.on(\'end\', () => {
                    const parsedData = JSON.parse(rawData);
                    response.data = parsedData;
                    resolve({
                        response,
                        request
                    });
                });
            } else {
                resolve({
                    response,
                    request
                });
            }
        }).on(\'error\', (e) => {
            reject(e);
        });
    });
}

可能是什么问题?

  • 您正在尝试将其导入您的 Angular 应用程序或您的后端?
  • @MatthieuRiegler 直接在 Angular 应用程序中。后端还没有涉及!
  • 那是一个后端包,与 Angular 应用程序不兼容。
  • 那么没有办法在Angular中进行速度测试吗?
  • @MatthieuRiegler 你能把它作为答案发布吗,我可以接受

标签: javascript angular typescript


【解决方案1】:

fast-speedtest-api 旨在用于 nodejs 而不是 Angular 应用程序!

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2018-02-10
    • 2022-11-04
    • 1970-01-01
    • 2016-04-23
    • 2018-09-28
    相关资源
    最近更新 更多