【问题标题】:Is it possible pass promise to property?是否可以将承诺传递给财产?
【发布时间】:2018-06-12 03:55:15
【问题描述】:

1) 我可以在 CronJob 构造函数中传递一个返回 promise 到参数“onTick”的函数吗?

假设我的功能是:

`function a() {
    return new Promise((res, rej) => {
        res(smth);
    });
 }`

并且 CronJob 采用参数 onTick 哪个The function to fire at the specified time

来自文档的示例:

`const cron = require('cron');
 var job1 = new cron.CronJob({
     cronTime: '* * * * *',
     onTick: function() { // How to pass my promise?
         console.log('job 1 ticked');
     },
     start: false,
     timeZone: 'America/Los_Angeles'
 });`

再次,我怎样才能将 promise func 传递给 onTick 参数?或者也许有另一种解决方案?

2) 我应该安装任何软件包来设置 timeZone 吗? 如果我将 timeZone 设置为“亚洲/巴库”,它会起作用吗?

【问题讨论】:

  • 如果您愿意,可以使用onTick: a
  • 但是如果promise接受一个论点呢?或者我如何在那里处理已解决的承诺?

标签: javascript node.js promise cron


【解决方案1】:

onTick 方法只接受一个函数。您可以将其分配给一个函数,并依次调用您的承诺。类似的东西:

onTick: PromiseRunner

其中PromiseRunner 是您调用承诺的函数。

要处理承诺,您需要在 PromiseRunner 函数中使用 Promise chaining 进行处理。

您不能将任何参数传递给onTick 函数(或promise),但您可以使用context 属性来提供您希望函数运行的上下文。

【讨论】:

    猜你喜欢
    • 2015-07-25
    • 2014-09-15
    • 2018-07-03
    • 2015-06-06
    • 1970-01-01
    • 2018-04-17
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多