Это рабочий пример кода, который вызывает асинхронную функцию из другого места и повторно использует результат с некоторыми вычислениями.В этом случае я использовал «Обещание» два раза.
- first Promise: получить асинхронное значение из другого местоположения файла.
- second Promise: дождаться получения результата из первого Promise для повторного использованияв файле main.js.
Как эффективно выполнить эту операцию с использованием «обратных вызовов» или «обещаний»?
Мой код:
в ./folder1/sub.js
function func(){
return new Promise(function(resolve,reject) {
var value = 5; // resolve value
setTimeout(function(){
value += 5;
err = false;
if(err) return reject(err);
resolve(value);
},3000);
});
}
module.exports={
getValue: func
}
в ./main.js
var sub = require('./folder1/sub');
function nextfunc(){
return new Promise(function(resolve,reject){
sub.getValue().then(function(val){
console.log(val);
// do some calculations
val+=5;
err = false;
if(err) return reject(err);
resolve(val);
});
});
}
var last = nextfunc();
last.then(function(last){
console.log('last -', last);
});