【发布时间】:2018-12-05 06:31:29
【问题描述】:
我有 3 个函数,func1() 将一些 api 数据返回给 func2() 并且 func2() 从 func3() 调用。Func2() 有一个 Promise 返回类型,在 Func2() 中我只解决某些条件是遇到其他情况我想调用相同的 Func2() 直到条件满足但是当我执行 func3() 时。我没有看到来自 func2() 的响应。我收到错误消息“回调”参数必须是 函数:TypeError:“回调”参数必须是函数。
//func1()
const apiRequest = (options, func_callback) => {
request(options, (err, res, body) => {
let result = {
body: body,
error: err,
res: res
}
func_callback(result);
});
};
//func2
const getPromise = (options) => {
return new Promise((resolve, reject) => {
apiRequest(options, (response) => {
if (response.error) {
reject(response.error);
}
if (response.body.hasOwnProperty('message')) {
console.error(`Error: Invalid token`);
new Promise((resolve, reject) => {
const payload = {
url: 'https://abc',
form:{},
method: 'post'
};
request(payload, (err, res, body) => {
if (err) {
reject(err);
}
else {
resolve(body);
}
});
}).then((result) => {
options.headers.Authorization = 'Bearer '+result;
getPromise(options); // seems Issue having this line to call again
});
}
else {
resolve(response.body);
}
});
});
};
// func3()
function getSession() {
const options={url:''someurl',
getPromise.then(result => {
console.log('all ID'+result); // I can not see result here
.catch(error => {
console.log('Error ', error);
});
}
【问题讨论】:
标签: javascript node.js promise es6-promise