【发布时间】: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