问题标签 [structured-concurrency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 为什么改变演员的 nonSendable 属性是合法的?
以下代码在 Swift 5.5 (beta) 中是合法的:
为什么这是合法的?狗属性是共享状态,不是吗?我们不是有同时在不同线程上访问演员的狗的危险吗?这不就是演员应该保护我们的吗?
奇怪的是,如果演员的dog
属性是用var
而不是声明的let
,我们将不得不await
在访问期间说。为什么会有所不同?Dog 是一个引用类型;它在适当的位置是可变的,并且无论是否用let
or声明它都以完全相同的方式可变var
。
ios - Swift - 不等待异步返回
我希望能够让函数doSomething()
从不class B
存在async
并且不阻止它的调用者线程。但是使用以下代码,我得到了这个错误:
无法将“() async -> Void”类型的函数传递给期望同步函数类型的参数
并且 xcode 尝试强制执行doSomething()
函数 fromclass B
成为async
android - 使用 GlobalScope.launch 和 CoroutineScope().launch 启动协程有区别吗?
在 Kotlin 中有多种启动协程的方法。我发现了几个使用GlobalScope
和CoroutineScope
使用的例子。但是后者是在启动协程时直接创建的:
使用
GlobalScope
:使用
CoroutineScope
实例,在启动协程时直接创建:
在这种情况下,这两种方法有区别吗?
第二种情况是不是违反了结构化并发的原则?
swift - 将本地可变结构传递给异步 let 绑定
我想创建一个 URL 请求并将其传递给 async let 绑定,这对我来说似乎很自然:
为什么我会收到错误消息?URLRequest
是一个结构,所以当我们将它传递给一个函数时,该函数应该得到该结构的副本,所以如果我request
在异步调用之后修改,它不应该影响调用。
我知道调用是异步发生的,但我希望它在调用点捕获参数,然后继续执行,就好像调用已经进行一样(因此,request
调用点的副本已传递到data(for: request)
.
此外,是否有一种方便的方法可以在不创建另一个let
变量且不使用闭包进行初始化的情况下执行此操作request
,例如: