【发布时间】:2019-06-16 16:34:40
【问题描述】:
所以基本上我想异步执行 2 个同步承诺。像这样:
(function foo() {
var newValues = ...;
this.getMessages().then((msgs: Array<any>) => {
this.saveMessages(msgs.concat(newValues));
});
})()
现在因为我不想等待saveMessages 完成执行,所以我没有在最后添加.then()。因为我不在乎结果。我只是想执行异步函数,所以在某些时候我们让消息离线。
但我担心承诺可能会被垃圾收集,因为按照标准(据我所知)你总是需要 .then 来表示承诺。
所以我的问题是我是否需要添加一个空的.then 以确保它不会太早地被垃圾收集并且函数不会正确执行。像这样:this.saveMessages(msgs.concat(newValues)).then();?
在浏览器和NodeJS中是一样的吗?
【问题讨论】:
-
...promise 可能会被垃圾收集... - 你这是什么意思?另外,您面临的问题是什么?
-
为了解决promise,不需要加
.then()。 -
我认为您的意思是
asynchronously而不是synchronous context -
还要注意在 JS 中如何使用“上下文”这个词,因为它具有非常特定的含义,使用时可能会引起混淆……完全脱离上下文;)……@987654321 @
标签: javascript node.js promise es6-promise