【问题标题】:How can I do a background async task using Promises如何使用 Promises 执行后台异步任务
【发布时间】:2018-07-26 09:00:42
【问题描述】:

我有一个类似这样的函数,使用PromisesNodeJS v6.10

function doSomeAsyncThings() {
    return this.doAsync().then((res) => {
        return this.logAsync().then(() => res)
    });
};

现在,在上述示例的上下文中,this.logAsync() 对我的应用程序并不重要,但更多的是用于记录保存目的。出于这个原因,我想知道我是否可以在后台执行此操作,从而不等待或完成返回res

【问题讨论】:

  • 这取决于你需要什么。如果它不重要,请不要等待/使用它。

标签: javascript node.js asynchronous es6-promise


【解决方案1】:
function doSomeAsyncThings() {
    return this.doAsync().then(value => {
        this.logAsync()
        // do things with your `value`
    });
};

别等了。

【讨论】:

  • this.logAsync 自己做了 2-3 次异步操作,所以如果调用它的函数在 this.logAsync() 完成之前结束,this.logAsync() 的执行会继续吗?
  • @AyushGupta 由于.logAsync 是异步的,它将继续在后台运行。我们不需要听它的完成(使用.then),因为我们不关心它的结果。您可以随时在您的环境中对其进行测试,看看它是否按预期工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
  • 2016-03-02
  • 1970-01-01
相关资源
最近更新 更多