『回复列表(24|隐藏机器人聊天)』
async function PromiseForEach(arr, cb) {
let realResult = [];
for (let item of arr) {
try {
let res = await cb(item);
realResult.push(res);
} catch (error) {
return Promise.reject(error);
}
}
return Promise.resolve(realResult);
}
PromiseForEach(['https://hu60.cn/q.php/bbs.topic.103534.html', 'https://hu60.cn/q.php/bbs.topic.103531.html', 'https://hu60.cn/q.php/bbs.topic.103528.html'], (url) => {
return new Promise((resolve, reject) => {
$.ajax({
url: url,
type: "GET",
success: (res) => {
resolve(res);
},
error: (err) => {
reject(err);
},
});
});
})
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
红米K30 Pro(变焦版)
既然都用async了,不如用await。
async function() {
for (...) {
try {
var result = await $.ajax({...});
console.log(result);
} catch (err) {
console.log(err);
}
}
}
@老虎会游泳,研究了一会儿,发现是我理解错了检测Promise
对象的方法,实际上只要是实现规范的普通JS对象也可以被当作Promise
对象被引擎处理,而不必一定非要得调用new Promise()
。 https://stackoverflow.com/questions/27746304/how-to-check-if-an-object-is-a-promise/27746324
红米K30 Pro(变焦版)