标题是一个长期的问题,但是如果我使用javascript进行异步调用但没有回叫或将其链接到Promise中,它将完成执行吗?即如果我有像这样的代码:
function markAsInactive(userId) {
return retrieveUser(userId) //
.then(res => {
const mark = markAsInactive(userId) // returns a promise (say takes 2 seconds)
return Promise.resolve('blah')
})
.then(...etc)
.catch(...)
}
markAsInactive
已触发对的调用,但线程不等待它解决,而是then
立即转到下一个(据我所知)。如果堆栈返回到根目录,是否可以保证完成执行,或者线程/进程会取消调用?
我知道我可以使用return Promise.all([mark, ...])
多个承诺并行解决的方法。这个问题更适合我。
如果堆栈返回到根目录,是否可以保证完成执行,或者线程/进程会取消调用?
通话结束。所有异步操作最终都将退出当前作业(任务),然后再对其进行进一步的工作,从而完全退出堆栈。它是给定线程上JavaScript基于作业的本质所固有的(而NodeJS使用单个线程),并且保证then
回调可以保证是异步的。
如果NodeJS在完成之前终止,则该工作将无法完成,但是当有任何未完成的任务,I / O操作等时,NodeJS会继续运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句