【发布时间】:2020-03-03 06:45:01
【问题描述】:
我正在使用节点脚本异步进行多个 api 调用,现在我需要在这些调用完成后“做一些事情”。在我执行请求、设置选项并在设置选项后获取doSomething 后,不确定在我的createProject() 函数中做什么。
function performRequest(reqOptions, reqBody, success) {
const req = https.request(reqOptions, (res) => {
var chunks= [];
// data received
res.on('data', function (chunk) {...});
// data processed
res.on('end', function() { success(Buffer.concat(chunks).toString()); });
});
// error occurred during request
req.on('error', (e) => {
console.error('Request error: ' + e);
});
req.write(JSON.stringify(reqBody));
// end request
req.end();
}
function createProject(name) {
var reqOptions = {...};
var reqBody = {...};
performRequest(reqOptions , reqBody , function(data) {
// project successfully created - set project options
setOption1(data.id);
setOption2(data.id);
// after options set, do something
doSomething();
});
}
function setOption1(id) {
// performRequest(...)
}
function setOption2(id) {
// performRequest(...)
}
function doSomething() { ... }
【问题讨论】:
-
使用
Promise.all(并使performRequest返回一个承诺) -
介意分享我如何使用节点 v10 做到这一点?
标签: javascript node.js asynchronous promise