【问题标题】:How to call function after an asynchronous function finishes work in node js如何在节点js中的异步函数完成工作后调用函数
【发布时间】:2019-11-25 03:33:48
【问题描述】:

我正在尝试在函数完成工作后调用函数

 invalue.map((val) => {
               const data = column.map(v=>{ return encryptData.regularDataEncrypt( val[v])});
               const withcote = data.map(x => {return  "'" + x + "'"})   
               const serialnumber_voice =val.serialnumber_voice;   
               const cassdataQuery=`insert into cdr_voice(id,${str},isencrypted) values(now(),${withcote.join()},false)`;
               db.execute(cassdataQuery).then(data=>{
                 pg.query(`update cdr_voice set is_cassandra= true WHERE serialnumber_voice = ${serialnumber_voice}`).then(u=>{
                    console.log("is_cassandra updated",serialnumber_voice )
                 })
                 console.log("data updated ",serialnumber_voice)
               })
            })

我去执行

 function incrementQueryValue(){
    encryptCdrVoice()
}

map函数完成后的函数

【问题讨论】:

标签: javascript node.js asynchronous


【解决方案1】:

尝试从与map 一起使用的回调中返回一个承诺。

通过这种方式,可以等待使用Promise.all 解决所有承诺,然后调用encryptCdrVoice

const tasks = invalue.map((val)=>{
    const data = column.map(v=>{ return encryptData.regularDataEncrypt( val[v])});
    const withcote = data.map(x => {return  "'" + x + "'"})
    const serialnumber_voice =val.serialnumber_voice;
    const cassdataQuery=`insert into cdr_voice(id,${str},isencrypted) values(now(),${withcote.join()},false)`;
    return db.execute(cassdataQuery).then(data=>{
        pg.query(`update cdr_voice set is_cassandra= true WHERE serialnumber_voice = ${serialnumber_voice}`).then(u=>{
            console.log("is_cassandra updated",serialnumber_voice )
        })
        console.log("data updated ",serialnumber_voice)
    })

})

Promise.all(tasks).then({
    encryptCdrVoice()
})

【讨论】:

  • 在 encryptCdrVoice() 函数中的 map 函数不起作用
  • 如果 encryptCdrVoice 在评估 map 的模块中不可用,但 incrementQuaryValue 是,那么你应该调用它:Promise.all(tasks).then(incrementQuaryValue)
猜你喜欢
  • 1970-01-01
  • 2014-05-12
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
相关资源
最近更新 更多