gpt4 book ai didi

javascript - 异步/等待/返回不等待响应

转载 作者:行者123 更新时间:2023-12-02 22:24:36 25 4
gpt4 key购买 nike

我有一个循环遍历电话号码列表的函数。如果其中一个号码符合条件,则将信息记录在表中,然后发送短信并搜索另一个号码是否也符合条件。

为了实现这一点,我使用 Async/Await,但我的问题是最后一个发送短信的函数,我有一个 console.log,然后它有一个返回;我正在以正确的顺序获取日志,但它没有等待返回的响应。

这是我的代码。

return t.any(Query).then(function(Response){
const getQualifiedUsers = async() => {
try{
if("meets criteria"){
try{
await insertInTable()
}catch(error){
console.log(error);
}
}
}catch(error){
console.log(error);
}
}
getQualifiedUsers();
}


async function insertInTable(){
try{
await db.any(secondQuery).then(function(numberSaved){
const sendAsyncSMS = async () => {
try{
await sendSMS();
}catch(error){
console.log(error);
}
}
sendAsyncSMS();
}
}catch(error){
console.log(error);
}
}

async function sendSMS() {
var date = moment().utc().format('MM-DD-YYYY HH:mm:ss');
console.log('date', date);

return client.messages.create(params, function(err, data, message) {
if(err){
return 'done'
}else{
return 'done'
}
})
.then(message =>
console.log(message.sid)
);
}

有了这个,我得到了响应搜索-->插入-->日志日期,然后返回搜索而不是发送消息。完成后,它会尝试发送所有短信。因此它不会等待 return 的响应。我已经更改了很多次,但我似乎无法弄清楚我错过了什么以及为什么我无法等待响应。

最佳答案

它不等待等待的原因是因为您的异步函数是同步调用的(没有等待)getQualifiedUsers(),因此它运行它,但不等待它完成.

由于您似乎正在遵守 promise ,因此您可以更改此设置:

return t.any(Query).then(function(Response){
const getQualifiedUsers = async() => {
try{
if("meets criteria"){
try{
await insertInTable()
}catch(error){
console.log(error);
}
}
}catch(error){
console.log(error);
}
}
getQualifiedUsers();
}

进入此:

return t.any(Query).then(async function(Response) {
try {
if ("meets criteria") {
try {
await insertInTable()
} catch(error) {
console.log(error);
}
}
} catch(error) {
console.log(error);
}
}

它应该可以正常工作。

编辑:哎呀,我错过了 insertInTable() 中的一些内容,基本上是相同的内容,因此将其更改为以下内容:

async function insertInTable(){
try {
await db.any(secondQuery).then(async function(numberSaved) {
try {
await sendSMS();
} catch(error){
console.log(error);
}
}
} catch(error) {
console.log(error);
}
}

关于javascript - 异步/等待/返回不等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59107767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com