我想知道如果 Meteor 方法已经是非阻塞的,我是否需要在该方法中使用
this.unblock()
。
这是一个人为的例子:
Meteor.methods({
myMethod() {
this.unblock();
someAPIWrapper(params, function (err, res) {
// do something with res asynchronously
});
}
});
myMethod
使用第三方 API 的某些 Node.js 包装器进行 HTTP 调用。它是异步的。
在这种情况下,使用
this.unblock()
是否可以获得性能提升?
基本上没有。
this.unblock()
允许在新纤程中继续执行来自单个客户端的有序方法调用,因为当前纤程被同步操作阻塞。
所以只要你的方法体不做任何阻塞当前纤程的工作,你就不需要显式地解除它的阻塞。事实上,由于创建了新的不必要的光纤,它甚至可能会导致自己的开销。
你能为我创建一个代码来解锁区块吗?你能告诉我如何编码吗?