Я новичок в асинхронном вызове и обещании. Я хочу вызвать три функции, которая вызывает базу данных. Мне нужно получить эти результаты и обработать их. я использую для этого обещание. это не работает, поскольку я думаю, что я, должно быть, не делаю правильный путь, пожалуйста, предложите. ваш любой ответ приветствуется. Я использую в NODE JS. Функция базы данных, похоже, работает, она вызывает базу данных с тремя запросами.Как использовать вложенное обещание для вызова функции и получить значение
КОДА
function nested_three_Promise_call_three_function(){
new Promise(function (resolve, reject) { return sample(); })
.then(
function (val) {
new Promise(function (resolve, reject) { sample1(); })
.then(
function (val) {
new Promise(function (resolve, reject) { sample2(); })
.then({
function(val) {
/* NEED TO GET VALUE OF ALL SAMPLE,SAMPLE1,SAMPLE 2 FOR FURTHER PROCESS BEFORE SEND TO RESPONSE*/
console.log("sample" + sample);
console.log("sample1" + sample1);
console.log("sample2" + sample2);
},
function(err){
console.log("error inside promise for sample2");
}
})
},
function (err) {
console.log("error inside promise for sample1");
}
)
},
function (error) {
console.log("error inside promise for sample1");
});
}
function sample() {
console.log("sample called");
database.query("select * from sample").then(function(result){
sample = result;
}).catch(function(error){
console.log("error occured in sample")
});
}
function sample1() {
console.log("sample called");
database.query("select * from sample1").then(function(result){
sample1 = result;
}).catch(function(error){
console.log("error occured in sample1")
});
}
function sample2() {
console.log("sample called");
database.query("select * from sample2").then(function(result){
sample2 = result;
}).catch(function(error){
console.log("error occured in sample2")
});
}
'database.query()', кажется, уже возвращаются обещание, так что все это кажется довольно бессмысленным когда у ou может просто вернуть это значение и сделать что-то более похожее на 'sample(). then (sample1) .then (sample2) .then (...' – adeneo
@adeneo Я бы хотел, чтобы вы, пожалуйста, выделили немного больше, поскольку я действительно новичок во всем это. – aka
'' '' '' '' '' не вызывается в 'javascript' в' new Promise (функция (разрешить, отклонить) {}) 'at Question? 'nested_three_Promise_call_three_function()' не вернет разрешенное или отклоненное значение или причину обещания? – guest271314