小编Yos*_*Yos的帖子

在浏览器中关闭 WebSocket 连接时是否必须手动删除事件侦听器?

我正在使用WebSocket API提供的本机方法。

我想知道是否需要删除事件侦听器,因为链接中removeEventListener没有提到websockets的 MDN 示例代码中的方法。

我正在使用这样的事件方法:

const ws = new WebSocket(url);
ws.onopen = () => {}
Run Code Online (Sandbox Code Playgroud)

此外,我想知道是否需要删除事件侦听器,如果我正在关闭与ws.close()方法的连接,我想它无论如何都会在清理时删除侦听器。

javascript event-handling websocket

21
推荐指数
1
解决办法
2452
查看次数

在r中有多个标头的httr请求

我正在尝试从R中的httr包发出请求:

POST(url = "https://website.com/api/waterfalls", 
       query = list(itemsPerPage="10", page="1", sortAsc="true", sortBy="priority"), 
 add_headers(c('Authorization'='Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiI1NmZhNzZiMzMxMTY5NzAwMDIwMDAwNDIifQ.CHjH9jQHy2-B68aBRijoZptCAtVLm9U_Z80f_XYaPEc'
               'Accept-Encoding' = 'gzip, deflate, sdch, br', 
               'Accept-Language' = 'en-US,en;q=0.8', 
               'User-Agent' = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36', 
               'Accept' = 'application/json, text/javascript, */*; q=0.01', 
               'Referer' = 'http://cnn.com', 
               'X-Requested-With' = 'XMLHttpRequest', 
               'Connection' = 'keep-alive',
               'Authority' = 'website.com')))
Run Code Online (Sandbox Code Playgroud)

这不起作用.我认为问题是add_headers()的语法不正确,你知道如何在httr的POST()中使用多个头文件吗?

r httr

7
推荐指数
1
解决办法
2498
查看次数

为什么我们要在等待后检查 WIFEXITED 以杀死 Linux 系统调用中的子进程?

我在 C 中遇到了一些代码,我们在其中检查了 的返回值,wait如果它不是错误,则还有另一个检查WIFEXITEDand WIFEXITSTATUS。为什么这不是多余的?据我了解,wait如果发生错误则返回 -1,而WIFEXITED如果wait子进程正常终止则返回非零值。因此,如果此行中没有任何错误,if ( wait(&status) < 0 )为什么在WIFEXITED检查期间会出错?

这是代码:

#include <stdio.h>
#include <signal.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <unistd.h>

#define CHILDREN_NUM 5

int main () {

    int i, status, pid, p;
    for(i = 0; (( pid = fork() ) < 0) && i < CHILDREN_NUM;i++)
        sleep(5);


    if ( pid == 0 )
    {
        printf(" Child %d : successfully created!\n",i);
        exit( 0 ); …
Run Code Online (Sandbox Code Playgroud)

c unix linux operating-system

6
推荐指数
2
解决办法
1万
查看次数

为什么我的 webpack 包在主机上成功构建,但不在 docker 容器中?

我的项目有一个 monorepo 结构,如下所示:

babel.config.js
  a-something
  b-something
Run Code Online (Sandbox Code Playgroud)

我的项目根目录中有 babel 配置文件,包a-somethingb-something. 在包内a-something我有以下 webpack 配置:

const path = require('path')

module.exports = {
  target: 'node',
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'build')
  },
  devtool: 'source-map',
  module: {
    rules: [
      {
        test: /\.js?$/,
        use: {
          loader: 'babel-loader',
          options: {
            rootMode: 'upward'
          }
        },
        include: [
          path.resolve(__dirname, 'src'),
          /node_modules\/a-/,
          /node_modules\/b-/
        ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

在包内,a-something我有以下 package.json:

{
  "name": "a-something",
  "version": "1.0.0",
  "description": "",
  "main": "index.js", …
Run Code Online (Sandbox Code Playgroud)

javascript docker webpack babeljs babel-loader

5
推荐指数
1
解决办法
1763
查看次数

如何将CRUD状态更改日志表转换为带有日期和实体列的表?

有一个更改日志表,用于跟踪实体(父/子)及其状态(新/现有/已删除):

\n
| timestamp              | parent | child | status   |\n| ---------------------- | ------ | ----- | -------- |\n| 2022-06-10 19:10:25-07 | p1     | c1    | new      |\n| 2022-06-12 19:10:25-07 | p1     | c1    | existing |\n| 2022-06-14 19:10:25-07 | p1     | c1    | deleted  |\n| 2022-06-10 19:10:25-07 | p2     | c1    | new      |\n| 2022-06-12 19:10:25-07 | p2     | c1    | deleted  |\n
Run Code Online (Sandbox Code Playgroud)\n

当一个child实体处于状态时new,意味着它已被创建,当状态为时,existing意味着child保持存在,当状态为时deleted,意味着child不再相关。上表中的每一行都是由手动作业生成的,因此不能保证该作业会定期运行。这意味着具有existing状态的行是可选的 …

sql apache-spark-sql

5
推荐指数
1
解决办法
272
查看次数

为什么在Javascript中的假值之后执行三元表达式?

据我所知,在Javascript中伪造的值之后不会执行表达式。例如下面的语句:

const result = undefined && 5;
console.log(result);
Run Code Online (Sandbox Code Playgroud)

result 将是不确定的。

然而:

const result = false && false ? 'T' : 'F';
console.log(result);
Run Code Online (Sandbox Code Playgroud)

result将等于F。为什么仍然执行三元表达式?

javascript boolean-logic ternary-operator

3
推荐指数
1
解决办法
70
查看次数

如何在不阻塞的情况下从嵌套的 CompletableFuture 返回值?

getPrice()由于以下错误,我在使用方法返回汽车价格值时遇到问题:

no instance(s) of type variable(s) U exist so that CompletableFuture<U> conforms to Double inference variable U has incompatible bounds: equality constraints: Double lower bounds: CompletableFuture<U81345>
Run Code Online (Sandbox Code Playgroud)

我想要getPrice返回CompletableFuture<Double>,但它返回了CompletableFuture<CompletableFuture<Double>>,因为我正在从嵌套的 future 返回一个值。我可以调用.join()嵌套的 future,但我不想阻塞线程。这是我的代码:

no instance(s) of type variable(s) U exist so that CompletableFuture<U> conforms to Double inference variable U has incompatible bounds: equality constraints: Double lower bounds: CompletableFuture<U81345>
Run Code Online (Sandbox Code Playgroud)

java future completable-future

3
推荐指数
1
解决办法
602
查看次数

为什么sqrt()和abs()在C程序中工作而不包括math.h或stdlib.h?

下面是我在C中的一些代码.你可以看到我所包含的唯一标题是stdio.h.但是,我收到一个abs声明冲突的警告: note: 'abs' is a builtin with type 'int (int)'并且sqrt在不使用我的函数的情况下工作.

我的编译器版本:Apple LLVM version 8.0.0 (clang-800.0.42.1).

我正在使用的编译标志:-Wall -pedantic -ansi.

怎么会这样?

#include <stdio.h>

double abs(double x) {
    return x >= 0 ? x : -x;
}

double sqrt(double y) {
    double x = 1.0;
    int error;
    printf("My sqrt\n");
    if(y <= 0) {
        return 0;
    }
    while(abs(error = y - x * x) > .0005) {
        x = x + error/ (2 …
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
803
查看次数

在 Java 中,与接收特定类型的方法相比,类型化接口有什么优点?

我正在用 Java 编写一个类,我想实现Comparable接口。这是班级:

public class Flight implements Comparable {
    private int flightTime;
    public int compareTo(Object o) {
        Flight f = (Flight) o;
        return this.flightTime - f.flightTime;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我了解到我们还可以向接口添加类型,如下所示:

public class Flight implements Comparable<Flight> {
    private int flightTime;
    public int compareTo(Flight f) {
        return this.flightTime - f.flightTime;
    }
}
Run Code Online (Sandbox Code Playgroud)

第二种实现的优点是什么(请不要将问题简化为一般泛型的优点)?

我对 Java 相当陌生,我怀疑添加类型一定有一些好处,因为从表面上看,实现实现了相同的目标。此外,看起来 的实现compareTo(Object o)可能会为我们提供更多信息,因为我们可以测试instanceof并可能处理错误。

java generics types interface

2
推荐指数
1
解决办法
1080
查看次数

为什么在对象密钥之后不能使用Javascript传播运算符?

我有以下代码:

const array = [{
    a: 'a',
    b: 'b'
  }];

  console.log(...array);

  const store = {
    obj: ...array
  }
Run Code Online (Sandbox Code Playgroud)

console.log将打印结果很好.但是,当我试图设置关键时,store我得到一个Parsing error: Unexpected token.

是不是...array分配给obj密钥的有效对象store

javascript spread-syntax

2
推荐指数
1
解决办法
65
查看次数

在声明方面,let和const在for循环内的const之间没有区别吗?

我最近遇到了以下代码:

for (const temp of [1,2]) {
  // do something
}
Run Code Online (Sandbox Code Playgroud)

我认为最好使用let声明,temp因为这样只能将变量声明一次。但是,我还运行了该示例以及let通过babel编写的版本,这是我看到的内容:

for (const p of [1,2]) {

}

for (let s of [1,2]) {

}
Run Code Online (Sandbox Code Playgroud)

成为:

for (var _i = 0, _arr = [1, 2]; _i < _arr.length; _i++) {
  var p = _arr[_i];
}

for (var _i2 = 0, _arr2 = [1, 2]; _i2 < _arr2.length; _i2++) {
  var s = _arr2[_i2];
}
Run Code Online (Sandbox Code Playgroud)

因此,通天对待constlet相同。我想知道Javascript运行时是否在后台相同地对待两个版本。这样的结论是,即使let在循环内部声明了变量,每次迭代仍会重新声明该变量?

javascript loops const let for-of-loop

2
推荐指数
1
解决办法
45
查看次数

ansi中的struct语法,带有逗号,只有一个类型声明用于多个字段

我在ansi C中遇到了这样的struct定义:

struct My_data {
    int a,
     b,
     c,
     d;
};
Run Code Online (Sandbox Code Playgroud)

和这种方式创建的结构完美无缺.我的问题是,这是否是ansi C中的特定法律语法.我在K&R中找不到任何此类信息.

c

0
推荐指数
1
解决办法
79
查看次数