- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遇到了这个express.js路线,它是 small example in its official repo 的一部分,演示如何处理错误,看看:
app.get('/next', function(req, res, next) {
process.nextTick(function() {
next(new Error('oh no!'));
});
});
我对process.nextTick()的理解是,它使一段代码异步执行。但令人困惑的部分是:默认情况下,express 中的路由处理程序不是异步的吗?为什么这段代码需要在路由处理程序中使用 process.nextTick() ,因为默认情况下它们是异步执行的?查看我上面链接的存储库中的整个代码可能会让我的问题更清楚,不用担心,整个存储库只有 20 行代码。
最佳答案
从您向我们展示的代码来看,没有理由在该代码示例中使用process.nextTick()
。
代码可以直接调用 next(new Error('oh no!'))
,如下所示:
app.get('/next', function(req, res, next) {
next(new Error('oh no!'));
});
当您希望将某些事情的运行推迟到事件处理程序代码的其余部分运行之后立即运行时,可以使用
process.nextTick()
。但是,在您展示的示例中,事件处理程序中没有其他代码,因此没有其他可运行的内容 - 因此没有什么实际理由在这里使用 process.nextTick()
。
我能猜到的最好的结果是,他们只是显示了一个代码示例,说明如果需要,可以在将来的某个时间异步调用 next()
并且不必同步调用。他们也可以使用 fs.readFile()
或 setTimeout()
,它们都具有异步回调,然后从这些回调中调用 next()
- 所有这些都是为了证明只要操作完成,您只需调用 next()
。
关于node.js - 为什么此示例代码使用 process.nextTick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596199/
当在代码中更新了数据,并希望等到对应的Dom更新之后,再执行一些逻辑。这时,我们就会用到$nextTick ?
我是 Vue js 新手,我试图理解方法中使用 nextTick 的逻辑。所以我有两个这样的组件: IsTuruIslem.vue ... ... .
如果我有这样的代码: class SomeClass constructor: -> @someAttr = false someFunction: -> process.ne
我正在尝试测试我的应用程序在连续两次 tick 上发生的情况。这是我目前所拥有的(测试在 karma devtools 中失败,但在命令行中失败): import { mount } from 'av
我偶然发现了一个函数( here on SO ),它可以写入文件,但确保不会覆盖文件: function writeFile(i){ var i = i || 0; var fileN
我有一个 我有一个已安装的方法,可以在其中初始化 map 。 mounted(){ this.map = L.map(this.mapId, { preferCanvas: true }).setV
尝试递归调用同步函数来解析数组的元素;一旦到达数组的最后一个元素,就会调用回调。但是,当传递给 process.nextTick 时,回调被认为是未定义的,因为在与回调相同的范围内声明的另一个变量会打
我有一个 50k 条目的列表,我正在输入我的数据库。 var tickets = [new Ticket(), new Ticket(), ...]; // 50k of them tickets.f
下面的程序会在 NodeJS 中挂起,有人知道为什么吗? ended = false;events = require('events');eventEmitter = new events.Even
Node.js 版本 0.10 今天发布,并引入了 setImmediate。 API changes文档建议在执行递归 nextTick 调用时使用它。 来自什么MDN says它看起来与proce
我应该多久或何时使用 process.nextTick ? 我明白它的目的(主要是因为 this 和 this )。 根据经验,当我必须调用回调时,我总是使用它。这是一般方法还是还有其他方法? 此外,
更新:事实证明这是一个非常愚蠢的问题。我只是没有注意到引用的示例中的一些简单的事情。 我一直在查看有关滴答声和事件循环的信息,大部分内容都很清楚,但 the nextTick documentatio
下面是“practise01.js”文件中的代码, function fn(name){ return f; function f(){ var n = name;
Node.js 0.10 版今天发布,引入了setImmediate。 API changes文档建议在进行递归 nextTick 调用时使用它。 来自MDN says它似乎与 process.nex
我读过 nextTick 允许在下一个操作中执行代码。但这在我的代码中不起作用,有人可以帮助我吗?请纠正我。谢谢。 .vue ..... methods:{ getUserInfo(){
使用 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop 中的视觉表示: setImmediate() 和
我从人们那里得到的印象是...除非与 process.nextTick 一起使用,否则所有 JavaScript 函数都是同步的。什么时候使用它最好? 我想确保我不会在不需要它的地方过度使用它。在这一
无论好坏,我们 stub process.nextTick 以同步调用它的第一个参数(回调)。看代码: global.test_clock = sinon.useFakeTimers(); sinon
我正在尝试测试此 site 中找到的 Yahoo API。但是,我可以获得“请求 token ”,但我似乎不知道如何继续,因为我的应用程序抛出 process.nextTick 错误 此外,如果可能的
我遇到了这个express.js路线,它是 small example in its official repo 的一部分,演示如何处理错误,看看: app.get('/next', function
我是一名优秀的程序员,十分优秀!