[英]How to call function after an asynchronous function finishes work in node js
我正在嘗試在函數完成工作后調用函數
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
使用的回調中返回一個承諾。
通過這種方式,可以使用Promise.all
等待所有 promise 得到解決,然后調用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()
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.