小编Stu*_*low的帖子

Node.js + Express,单CPU核能处理并行请求吗?

我正在 Docker 中创建一个基于 Nodejs、express 和 mongodb 的 API。

Docker 目前正在具有 512MB RAM 和 1 个 CPU 核心的 DigitalOcean Droplet 中运行。

我读过,nodejs 是每个 cpu 核心的单线程,并且使用称为“集群”的东西可以使其成为假多线程,在每个核心上启动一个应用程序。我确实只有 1 个核心,所以..这是否意味着我完蛋了?

如果我的 API 中有一个端点,假设需要 5 秒才能提供响应...这是否意味着在这 5 秒内我无法处理任何其他请求?

javascript node.js express

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

Swift Combine:如何处理事件和继续流

我正在使用 Swift Combine 实现一个带有登录功能的库。

使用以下代码,我已经能够登录,将响应序列化为对象 AuthenticationResult,并返回一个带有 User 或 ApiError 结果的 Publisher。

作为响应(AuthenticationResult 对象)的一部分,我还从 API 获取了一个 accessToken。我想将该令牌保存在本地作为此流的一部分。但我希望这在库内部完成,以便登录功能的响应不会改变。

有没有办法处理流中的这种情况,处理事件,然后继续流返回用户?

func authenticate(username: String, password: String) -> AnyPublisher<User, ApiError> {
    let parameters: [String: Any] = [
        "username": username,
        "pw": password
    ]

    var request = URLRequest(endpoint: Endpoint.login)
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: [])

    return URLSession.shared.dataTaskPublisher(for: request)
        .map { $0.data }
        .decode(type: AuthenticationResult.self, decoder: JSONDecoder())
        .map { $0.user }
    // Here I would like to do something like: .handleAndContinue { self.save($0.accessToken } …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift combine

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

组合:如何从守卫先决条件中提前退出错误

我想创建一个方法authenticate,使用合并,允许用户使用我的 API 登录。

我现在尝试添加一个前提条件,以便如果提供的用户名为空,我的方法不会接触网络。我想在这一点上提前存在,向订阅者提供错误。

请在下面找到我的代码片段。我如何从第 4 行的早期存在中返回错误?

func authenticate(username: String, password: String) -> AnyPublisher<User, Error> {

        guard !username.isEmpty else {
            // How to return an error to the subscribers from here?????
            return
        }

        let parameters: [String: Any] = [
            "username": username,
            "password": password
        ]

        var request = URLRequest(endpoint: Endpoint.login)
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        request.httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: [])

        return URLSession.shared.dataTaskPublisher(for: request)
            .map { $0.data }
            .decode(type: AuthenticationResult.self, decoder: JSONDecoder())
            .map { $0.user }
            .receive(on: RunLoop.main)
            .eraseToAnyPublisher()
    }
Run Code Online (Sandbox Code Playgroud)

ios swift combine

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

感叹号在Swift方法的头部的数据类型中的含义是什么

我注意到了一些方法,主要是在协议中有一个!在他们的参数.例如来自UIImagePickerControllerDelegate的这些:

protocol UIImagePickerControllerDelegate : NSObjectProtocol {
    @optional func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!)
    @optional func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: NSDictionary!)
    @optional func imagePickerControllerDidCancel(picker: UIImagePickerController!)
}
Run Code Online (Sandbox Code Playgroud)

究竟意味着什么!在这种背景下?

swift

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

标签 统计

swift ×3

combine ×2

ios ×2

express ×1

javascript ×1

node.js ×1

xcode ×1