Я довольно новичок в материале Node, поэтому заранее извиняюсь, если это довольно простой.agreement.all then структура не работает как ожидалось
Я пытаюсь вызвать функцию один раз, три асинхронные функции уже закончены. Это мой подход:
Первый файл: ./promise.js var reqHandler = require ('./ asyncTesting'); var Promise = require ('bluebird');
var listOfMed = ["med1","med2","med3"];
function postMethod() {
console.log("Post done");
}
reqHandler.reqHandler(listOfMed)
.then(function() {
console.log("Post done");
});
Второй файл:
./asyncTesting.js
var Promise = require('bluebird');
function function2() {
// all the stuff you want to happen after that pause
console.log("Requesting json for med2");
}
function callFunction(method){
if (method =="med2"){
setTimeout(function2, 3000);
}else{
console.log("Requesting json for "+method);
}
}
function reqHandler(listOfMed) {
return Promise.all(listOfMed.map(callFunction));
}
exports.reqHandler = reqHandler;
ожидается выход будет:
Requesting json for med1
Requesting json for med3
Requesting json for med2
Post done
Однако , что я действительно получил на консоли:
Requesting json for med1
Requesting json for med3
Post done
Requesting json for med2
Заранее спасибо
Для того чтобы 'listOfMed.map (callFunction)' иметь какое-либо значение, лучше убедиться, что 'callFunction' что-то возвращает. –