Выражения в списке аргументов вычисляются немедленно, так что выражение может быть передано в функцию.Таким образом, с
firstLoad(secondLoad());
secondLoad
вызывается и оценивается в
firstLoad(undefined);
до вызова firstLoad
.
Если firstLoad
асинхронный, просто передайтевместо этого введите secondLoad
имя функции и вызовите его как обратный вызов в конце асинхронного действия:
function firstLoad(callback) {
console.log("firstLoad function fired.");
setTimeout(() => {
console.log('firstload done');
callback();
}, 1000);
}
function secondLoad() {
console.log("secondLoad function fired.");
}
firstLoad(secondLoad);
Вы также можете firstLoad
вернуть обещание:
function firstLoad() {
console.log("firstLoad function fired.");
return new Promise((resolve) => {
setTimeout(() => {
console.log('firstload done');
resolve();
}, 1000);
});
}
function secondLoad() {
console.log("secondLoad function fired.");
}
firstLoad()
.then(secondLoad);
Конечно, если firstLoad
не асинхронный, просто позвоните secondLoad
после firstLoad
:
function firstLoad(callback) {
console.log("firstLoad function fired.");
}
function secondLoad() {
console.log("secondLoad function fired.");
}
firstLoad();
secondLoad();