小编Utk*_*pta的帖子

如何在 Javascript 中创建单例类?

我正在开发一个大型项目,其中有多个管理器来处理不同的任务,当我启动应用程序时,我只需要创建这些管理器的一个对象,

我遇到了这种单例创建方法

class QuestionnaireManager {

  constructor() {
    if (this.instance) {
      return;
    }
    this.instance = this;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是一种可以接受的方式吗?有什么缺点吗?我来自JAVA Kotlin背景,这似乎很简单,因为我们在其他语言的单例情况下需要处理很多事情。(大多数情况都必须处理多线程,但由于 JS 是单线程的,所以我认为这已经足够了)

仍然需要关于最佳实践或任何其他依赖注入方法的意见,在这些方法中我们甚至不依赖单例,而是创建一次对象并通过依赖注入在整个项目中重用。

我想知道JS中sensie的意见。

javascript singleton reactjs

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

使用CLI初始化react-native app时出现语法错误

我使用初始化应用程序时收到以下语法错误 react-native init MyApp

    SyntaxError: /Users/MyAccount/RNProjects/app/node_modules/react-native/packager/react-packager/src/node-haste/index.js: You can only use Class Properties when the 'classProperties' plugin is enabled. (389:2)
  387 |   }
  388 |
> 389 |   static Cache;
      |   ^
  390 |   static Module;
  391 |   static Polyfill;
  392 |   static getAssetDataFromName;
    at Parser.pp$5.raise (/Users/MyAccount/RNProjects/app/node_modules/babylon/lib/index.js:4380:13)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会突然发生这种情况.之前一切正常.我想我在修补时错误地删除了一些配置文件.

react-native react-native-cli

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

如何根据以前的值更新 MongoDB 文档?

抱歉,如果这是非常基本的,但我是 mongodb 新手并且无法找到答案:

假设我正在执行以下操作:

db.collection("bugs").updateOne({ _id: searchId }, { $set: { "fixed": true }}
Run Code Online (Sandbox Code Playgroud)

如何将“固定”设置为与“固定”的最后一个值相反?没有任何额外的查询?就像是{ $set: { "fixed": !fixed }}

javascript mongodb node.js

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

在 webpack 中实现更好的 TreeShaking 的正确方法是什么?

我想知道,以下两个选项之一是在webpack中更好地进行Tree Shaking的正确方法:

import { someFeature } from 'someModule'  // Option 1
import { isEmpty } from 'lodash' // Example 1
Run Code Online (Sandbox Code Playgroud)

或者,

import someFeature from 'someModule/someFeature' // Option 2
import isEmpty from 'lodash/isEmpty' // Example 2
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 webpack es6-modules tree-shaking

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

fchdir 如何工作?

在它的主页上写着:

fchdir() 与 chdir() 相同;唯一的区别是目录作为打开的文件描述符给出。

原型如下:

int chdir(const char *路径);
int fchdir(int fd);

我的问题是如何将目录作为文件描述符传递?目录是否也像文件一样有相应的描述符?

c chdir

4
推荐指数
1
解决办法
2492
查看次数

TokBox错误:OT.Session:无法连接,会话已未定义

我有一个类似的问题,但无法弄清楚这里发生了什么。我有一个.Net页面,其中包含所有要订阅的TokBox方法。我启动一个新窗口(用于多个流的视频监视器),初始化客户端,将其clientSessions存储在数组中,并在页面上以网格模式显示已订阅的流(在此示例中,仅使用一个客户端)。每次打开页面时,我都会创建并初始化每个客户端会话:

lstSessions[i] = opener.initializeClientSession(apiKey, sessionId, token, $('Player'+i), 'subscribe');
Run Code Online (Sandbox Code Playgroud)

在“打开器”页面中:

function initializeClientSession(apiKey, sessionId, token, container, myAction) {
var clientSession = OT.initSession(apiKey, sessionId);
console.log('initializeClientSession: ' + sessionId);

clientSession.connect(token, function (error) {
    if (error) {
        console.log("ERROR: initializeClientSession: " + myAction + " " + error);
    }
    else {
        console.log("clientSession connected: " + myAction + " " + clientSession.id);

        switch(myAction) {
            case "publish":
                publishClientVideo(clientSession, container);
                break;
            case "subscribe":
                subscribeClientVideo(clientSession, container);
                break;
            case "delay":
                if (inPVM) publishClientVideo(clientSession, container);
                break;
        }
    }
});
return clientSession;
Run Code Online (Sandbox Code Playgroud)

} …

javascript session stream node.js tokbox

4
推荐指数
1
解决办法
1289
查看次数

修复由于多次初始化Firebase而导致的Firebase错误

我正在使用将Firebase用作数据库的应用程序。我们仅在后端(基于Node Express构建的REST API)上使用firebase-admin进行需要管理员权限的操作,例如用户身份验证,用户帐户删除等。假设我们有一个端点,例如:

app.post('/auth/user/signin', function(req, res){
    const ev = req.body;
    const email = ev.email;
    const password = ev.password;

    firebaseAdmin.initializeApp({
      credential: {some admin creds}),
      databaseURL: {some database URL}
    });

    return someFirebaseAuthQuery()
     .then(() => {

        // Some auth related code
        ...
        ...
        ...

        firebaseAdmin.auth().app.delete();
        return res.
           status(some status).
           json(some data);
     })
});
Run Code Online (Sandbox Code Playgroud)

我们面临的问题是,当两个用户同时发出登录请求时,firebaseAdmin.initializeApp()会被调用两次(每个用户一次),这将引发错误,提示已存在类似Firebase App的错误。任何想法如何解决这个问题?

node.js firebase

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

创建模型表单时为什么需要"类元"?

from django import forms
from .models import NewsSignUp

class NewsSignUpForm(forms.ModelForm):
    class Meta:
        model = NewsSignUp
        fields = ['email', 'first_name']
here
Run Code Online (Sandbox Code Playgroud)

这段代码非常好用.但是,当我删除"class Meta:"时,它会抛出一个ValueError,说" ModelForm没有指定模型类 ".

from django import forms
from .models import NewsSignUp

class NewsSignUpForm(forms.ModelForm):
    model = NewsSignUp
    fields = ['email', 'first_name']
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?:(

python django django-models django-forms

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

CSS 如何阻止渲染?

我仍然无法非常清楚地理解“CSS 是渲染阻塞”这个概念。我确实非常了解 JS 是如何阻塞解析器的。但是,前者对我来说仍然有点不清楚。

让我们举个例子:

索引.html:

<!DOCTYPE html>
<html>
<head>
  <title>Some Document</title>
  <link href='cdn1.com/styles1.css' rel="stylesheet"/>
  <link href='cdn2.com/styles2.css' rel="stylesheet"/>
</head>
<body>
   ...
   ...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

style1.css(来自 cdn1):

body { background: blue }
Run Code Online (Sandbox Code Playgroud)

style2.css(来自cdn2):

body { background: red }
Run Code Online (Sandbox Code Playgroud)

现在,我们假设来自 cdn1 的 style1.css 加载时间为1 秒,而来自 cdn2 的 style2 加载时间为500 毫秒。我想知道最终用户在以下时间线之间会在浏览器中看到发生的所有事情:

  1. 在时间T < 500ms 时:是否会出现 FOUC 或空白页面,因为 CSS 是渲染阻塞的,并且在我们拥有 styles1.css 文件之前不会构建渲染树
  2. 在时间500ms < T < 1sec 时:是否会出现红页(因为 style2.css 已加载)、FOUC 或由于第 1 点中提到的原因仍然是空白页。

另外,结果在每个浏览器(主要是 …

html css browser rendering google-chrome

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

如何在ES6类中设置原型变量?

class SomeClass {

  someMethod() {
    // some code
  }

  someMoreMethod() {
    // some more code
  }

}

var someInstance = new someClass();
Run Code Online (Sandbox Code Playgroud)

我们知道,在上面的代码,方法someMethodsomeMoreMethod将得到重视的原型someInstance对象.但是,如果我们想要将一些属性(而不是方法)附加到原型上,该怎么办?我尝试执行以下操作,但它会抛出错误:

class SomeClass {

    someProperty = "Some Value";

    someMethod() {
      // some code
    }

    someMoreMethod() {
      // some more code
    }

 }
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 es6-class

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

为什么状态变量在 useState 中用 const 声明?

在 React 16 的useState()hook 官方文档中,count状态及其 setter 函数声明为:

const [count, setCount] = useState(0);
Run Code Online (Sandbox Code Playgroud)

在提供的示例中。

我的疑问是,为什么他们使用const作为状态变量,其值可以更改?

javascript reactjs react-hooks

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