我试图创建一个Promises数组,然后使用Promise.all()解决它们.我正在使用got,它返回了一个承诺.
我的代码有效,但我不完全理解.这里是:
const got = require('got');
const url = 'myUrl';
const params = ['param1', 'param2', 'param3'];
let promiseArray = [];
for (param of params) {
promiseArray.push(got(url + param));
}
// Inspect the promises
for (promise of promiseArray) {
console.log(JSON.stringify(promise));
// Output: promise: {"_pending":true,"_canceled":false,"_promise":{}}
}
Promise.all(promiseArray).then((results) => {
// Operate on results - works just fine
}).catch((e) => {
// Error handling logic
});
Run Code Online (Sandbox Code Playgroud)
让我失望的是,当我将Promises添加到数组中时Promise被标记为"pending",这意味着它们已经启动了.
我认为他们应该处于不活跃状态promiseArray
,并且Promise.all(promiseArray)
会启动它们并解决它们.
这是否意味着我两次开始他们?
在典型的单页应用程序(SPA,例如:React)中,整个代码包都提供给客户端。这包括应用程序的私有组件,这些组件通常受到客户端授权机制的保护(例如,检查状态中是否设置了身份验证令牌)。
是否可以对这些私有组件进行逆向工程,并至少看到它们的骨架?
我知道数据仍然隐藏在 API 后面,因此对手除了组件的骨架之外看不到任何内容(代码中的任何内容,而不是远程数据:布局、复制文本、界面行为等)
相比之下,如果您未经正式授权,SSR 应用程序通常不会向您返回受保护 UI 的任何部分。
我知道这在大多数应用程序中都不是问题,但是在完全私有的应用程序(例如,没有公开注册的应用程序)中,这可能是一个问题吗?在这些应用程序中,界面可以为对手提供有价值的信息。
具有极端保密要求的团队是否曾将其视为取消资格的问题?(例如:军事或秘密初创公司)或者他们仍然可以使用 SPA 并采取一些额外措施吗?(例如:不要向受信任网络之外的用户提供应用程序)
我有一个单例的 Python (3.8) 元类,如下所示
我尝试添加如下类型:
from typing import Dict, Any, TypeVar, Type
_T = TypeVar("_T", bound="Singleton")
class Singleton(type):
_instances: Dict[Any, _T] = {}
def __call__(cls: Type[_T], *args: Any, **kwargs: Any) -> _T:
if cls not in cls._instances:
cls._instances[cls] = super().__call__(*args, **kwargs)
return cls._instances[cls]
Run Code Online (Sandbox Code Playgroud)
在行中:
_instances: Dict[Any, _T] = {}
Run Code Online (Sandbox Code Playgroud)
MyPy 警告:
Mypy: Type variable "utils.singleton._T" is unbound
我已经尝试了不同的迭代,但没有成功;我很难弄清楚如何输入这个字典。
此外,该行:
_instances: Dict[Any, _T] = {}
Run Code Online (Sandbox Code Playgroud)
生产:
Mypy: The erased type of self "Type[golf_ml.utils.singleton.Singleton]" is not a supertype of its class …