javascript - 在 map 函数上使用 Promise
问题描述
我有一个数组,我想在这个数组上使用 Promise:
let check_duplicate_phone = store.state.lines.map(function (item) {
return core.checkIsPhoneDuplicate(item.phone , item.phone_significant);
});
let res = await Promise.all(check_duplicate_phone).then(function(values) {
console.log(values);
});
这是checkIsPhoneDuplicate
功能:
async checkIsPhoneDuplicate(phone , phone_significant) {
var data = {
'phone': phone ,
'phone_significant' : phone_significant
}
let res = await Axios.post(checkPhoneDuplicate_route, data)
.then(response => {
return response.data;
}).catch(error => console.log(error));
return res;
}
但它不等待响应,只需运行下一步。我知道它应该曾经喜欢这个,我已经阅读了这个答案但我没有发现我的错误在哪里。
谢谢。
解决方案
编辑:删除了不正确的解释,如评论中所指出的。这种方法确实有效,但没有解决 OP 的要求。根据评论,OPs 代码也应该像这段代码一样工作,所以可能会遗漏一些东西。
function checkIsPhoneDuplicate(phone, phone_significant) {
var data = {
phone: phone,
phone_significant: phone_significant
};
return Axios.post(checkPhoneDuplicate_route, data)
.then(response => response.data)
.catch(error => console.log(error));
}
async function runCheck() {
let check_duplicate_phone = store.state.lines.map(function(item) {
return core.checkIsPhoneDuplicate(item.phone, item.phone_significant);
});
let res = await Promise.all(check_duplicate_phone).then(function(values) {
console.log(values);
});
}
推荐阅读
- postgresql - Postgres将jsonb值作为jsonb数组返回?
- linux - Sed:在随机文本之前插入文本
- windows - 无法从 tcl 脚本执行 NSIS 安装应用程序
- symfony - Symfony 转储服务器正在监听,但在我转储时没有听到
- javascript - javascript - 使用“window.frames[0].stop()”停止 iframe 后取消暂停它
- node.js - 节点红色全局流程
- facebook - Facebook Marketing API 调用中的广告帐户缺少数据
- youtube - Youtube-DL AUDIO-ONLY 播放列表
- java - Java/Hibernate 错误:检测到连接泄漏。内部连接池已达到最大大小,当前没有可用连接
- colors - 如何在 tmux 中反转选定的选项卡颜色?