我对 Promise 还很陌生,我目前所做的所有道路都将我引向 Promise.all()
,但我不知道如何处理结果。
我有一些这样的数据
let data = {
"format_oid":["35474527960032","2595837960032"]
};
然后我将其传递给类似的函数
server.js
jobHandler.handle(data)
.then((info) => {
console.log(info);
})
.catch((err) => {
console.error(err);
});
在我的jobHandler
内我有课
jobHandler.js
class Handler {
// constructor etc
handle(data) {
return this.extract(data);
}
extract(data) {
let request = data.format_oid.map( (releaseId) => {
return this._getReleaseId(releaseId);
});
return Promise.all(request);
}
_getReleaseId(releaseId) {
return new Promise( (resolve, reject) => {
if (_hasRelease(releaseId)){
resolve('yay');
} else {
reject('boo');
}
});
}
目前request
将有一系列 Promise,如 [ Promise { <pending> }, Promise { <pending> } ]
然后我将如何在我的 server.js 中处理这组 promise ?
最佳答案
一 promise ,一结果。 Promise.all()
解析为一组结果,原始 Promise 数组中的每个 Promise 都有一个结果,其顺序与 Promise 相同。
how would I then handle this array of promises in my server.js?
aHandlerObject.extract(data).then(results => {
// results is an array of resolved values
// one for each call to this._getReleaseId(...)
}).catch(err => {
// handle error here
});
关于node.js - 处理来自 Promise.all 的一系列 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307513/