Node.js 我想在nodejs中按顺序以同步方式执行下面的代码
以上代码以异步顺序工作 异步顺序: 1.芬顿女士 2.ms.Delete 3.MS.Update 4.quickmslogs.Create 这是一个异步工作,我想工作的顺序,这个函数 如何以同步的方式实现这一点?帮帮我Node.js 我想在nodejs中按顺序以同步方式执行下面的代码,node.js,Node.js,以上代码以异步顺序工作 异步顺序: 1.芬顿女士 2.ms.Delete 3.MS.Update 4.quickmslogs.Create 这是一个异步工作,我想工作的顺序,这个函数 如何以同步的方式实现这一点?帮帮我 异步任务的用途是什么?在nodejs,我是一个新手!帮助我。您可以通过使用异步等待操作来完成此操作。尝试运行下面的代码 var job = new cronJob('* * * * * *', function () { //find and send message u
异步任务的用途是什么?在nodejs,我是一个新手!帮助我。您可以通过使用异步等待操作来完成此操作。尝试运行下面的代码
var job = new cronJob('* * * * * *', function () {
//find and send message using cron job
Quicksms.findOne({
attributes: ['id', 'phoneno', 'sender', 'message', 'isSent'],
raw: true
}).then(data => {
console.log('data:', data);
// var filteredData = datas.filter(data => data.isSent === 0);
// console.log('filteredData:', filteredData);
// for (var i = 0; i < data.length; i++) {
// if (data.isSent === 0) {
var uri = '/api/user=test&password=test&sender=' +
data.sender + '&SMSText=' + data.message + '&GSM=' + data.phoneno;
var sms = encodeURI(uri);
var options = {
host: 'test.com',
port: 80,
path: sms,
method: 'GET'
};
http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}).end();
//update into 1 true:
Quicksms.update({
isSent: 'true'
}, {
where: {
id: data.id
}
})
// }
// }
//store in log
QuicksmsLog.create({
phoneno: data.phoneno,
sender: data.sender,
message: data.message,
isSent: data.isSent
}).then(function (data) {
if (data) {
console.log("successfully stored in log");
} else {
console.log("failed");
}
})
//destroy message after sending
Quicksms.destroy({
where: {
isSent: 1
}
}).then(delData => {
console.log('cronJob deleted successfully.', delData);
});
});
}, function () {
console.log('DelCron Job finished.');
}, true, 'Asia/Calcutta');
您可以通过使用异步等待操作来实现这一点。尝试运行下面的代码
var job = new cronJob('* * * * * *', function () {
//find and send message using cron job
Quicksms.findOne({
attributes: ['id', 'phoneno', 'sender', 'message', 'isSent'],
raw: true
}).then(data => {
console.log('data:', data);
// var filteredData = datas.filter(data => data.isSent === 0);
// console.log('filteredData:', filteredData);
// for (var i = 0; i < data.length; i++) {
// if (data.isSent === 0) {
var uri = '/api/user=test&password=test&sender=' +
data.sender + '&SMSText=' + data.message + '&GSM=' + data.phoneno;
var sms = encodeURI(uri);
var options = {
host: 'test.com',
port: 80,
path: sms,
method: 'GET'
};
http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}).end();
//update into 1 true:
Quicksms.update({
isSent: 'true'
}, {
where: {
id: data.id
}
})
// }
// }
//store in log
QuicksmsLog.create({
phoneno: data.phoneno,
sender: data.sender,
message: data.message,
isSent: data.isSent
}).then(function (data) {
if (data) {
console.log("successfully stored in log");
} else {
console.log("failed");
}
})
//destroy message after sending
Quicksms.destroy({
where: {
isSent: 1
}
}).then(delData => {
console.log('cronJob deleted successfully.', delData);
});
});
}, function () {
console.log('DelCron Job finished.');
}, true, 'Asia/Calcutta');
使用Promise实现同步过程有多种方法。看起来上面这些方法都是实例,我假设它们是实例。按照传统方式,您可以使用多个promise实例创建一个promise。我将在下面制作一个示例代码,这样您就可以看到它是如何工作的。此外,如果您熟悉ES7语法,也可以使用。但是,由于您是node.js的新手,我将为前一种方法留下答案。检查下面。希望这对你有帮助
var job = new cronJob('* * * * * *', async function () {
//find and send message using cron job
await Quicksms.findOne({
attributes: ['id', 'phoneno', 'sender', 'message', 'isSent'],
raw: true
}).then(data => {
console.log('data:', data);
// var filteredData = datas.filter(data => data.isSent === 0);
// console.log('filteredData:', filteredData);
// for (var i = 0; i < data.length; i++) {
// if (data.isSent === 0) {
var uri = '/api/user=test&password=test&sender=' +
data.sender + '&SMSText=' + data.message + '&GSM=' + data.phoneno;
var sms = encodeURI(uri);
var options = {
host: 'test.com',
port: 80,
path: sms,
method: 'GET'
};
http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}).end();
//update into 1 true:
await Quicksms.update({
isSent: 'true'
}, {
where: {
id: data.id
}
})
// }
// }
//store in log
await QuicksmsLog.create({
phoneno: data.phoneno,
sender: data.sender,
message: data.message,
isSent: data.isSent
}).then(function (data) {
if (data) {
console.log("successfully stored in log");
} else {
console.log("failed");
}
})
//destroy message after sending
await Quicksms.destroy({
where: {
isSent: 1
}
}).then(delData => {
console.log('cronJob deleted successfully.', delData);
});
});
}, function () {
console.log('DelCron Job finished.');
}, true, 'Asia/Calcutta');
使用Promise实现同步过程有多种方法。看起来上面这些方法都是实例,我假设它们是实例。按照传统方式,您可以使用多个promise实例创建一个promise。我将在下面制作一个示例代码,这样您就可以看到它是如何工作的。此外,如果您熟悉ES7语法,也可以使用。但是,由于您是node.js的新手,我将为前一种方法留下答案。检查下面。希望这对你有帮助
var job = new cronJob('* * * * * *', async function () {
//find and send message using cron job
await Quicksms.findOne({
attributes: ['id', 'phoneno', 'sender', 'message', 'isSent'],
raw: true
}).then(data => {
console.log('data:', data);
// var filteredData = datas.filter(data => data.isSent === 0);
// console.log('filteredData:', filteredData);
// for (var i = 0; i < data.length; i++) {
// if (data.isSent === 0) {
var uri = '/api/user=test&password=test&sender=' +
data.sender + '&SMSText=' + data.message + '&GSM=' + data.phoneno;
var sms = encodeURI(uri);
var options = {
host: 'test.com',
port: 80,
path: sms,
method: 'GET'
};
http.request(options, function (res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
}).end();
//update into 1 true:
await Quicksms.update({
isSent: 'true'
}, {
where: {
id: data.id
}
})
// }
// }
//store in log
await QuicksmsLog.create({
phoneno: data.phoneno,
sender: data.sender,
message: data.message,
isSent: data.isSent
}).then(function (data) {
if (data) {
console.log("successfully stored in log");
} else {
console.log("failed");
}
})
//destroy message after sending
await Quicksms.destroy({
where: {
isSent: 1
}
}).then(delData => {
console.log('cronJob deleted successfully.', delData);
});
});
}, function () {
console.log('DelCron Job finished.');
}, true, 'Asia/Calcutta');
你能帮我贴一些答案吗?我不知道怎么做,我是个新手!你能帮我贴一些答案吗?我不知道怎么做,我是个新手!看起来不错@PavanLooks不错@帕万