如何在邀请邮件发送成功时添加Alert提示?
如何在邀请邮件发送成功时添加Alert提示
你需要在fetch请求的成功处理流程中添加提示,具体位置在清空输入框的逻辑之后,或者单独新增一个.then()回调。以下是两种实现方式:
方式一:直接在请求成功后添加提示
这种方式适用于只要请求返回HTTP 2xx状态码,就认为发送成功的场景:
async function invitePeopleToMyTeam(){ let [invites,invite_statuses] = [[],$Q('.invitation-data.invite-access').slice(0,20)]; $Q('.invitation-data.invite-email').slice(0,20).map((i,ind)=>{ if(~i.value.search(/.+@.+\..+/gi)){ invites.push({ email:i.value.trim().toLowerCase(), status:invite_statuses[ind].options[invite_statuses[ind].selectedIndex].innerHTML.slice(0,1).toLowerCase() }); }else{ invite_statuses[ind] = null; } }); for(let i=0,il=invites.length; i<il; i++){ if(invites[i] === null){ invites.splice(i,1); // 修正原代码错误:split改为splice才能删除数组元素 il--; i--; continue; } if(invites[i].status == null || invites[i].status == ""){ invites[i].status = "m"; } } if(invites.length===0 || invites.filter(e=>e).length===0){ alert('There don\'t seem to be any e-mails in your invite list. Please review and try again.'); return false; } let sql = `./invitePeople.cfc?method=sendInvite`; let params = {"invites" : invites}; let result = await fetch(sql, { method:"post", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(params) }) .then(resp => resp.text()) .then(resp=>{console.log(resp); return resp}) .then(r=>{ $Q('.invitation-data.invite-email').slice(0,20).map((i,ind)=>{ i.value= ""; }); // 在这里添加成功提示 alert("your email is sent"); }) .catch(e=>{ console.log(e); // 可选:添加请求失败的提示 alert("Failed to send invitation emails"); }); }
方式二:根据后端返回结果判断后提示(更严谨)
如果后端会返回业务层面的成功/失败标识(比如JSON格式的{"success": true}),建议先解析返回结果再判断是否弹出提示:
async function invitePeopleToMyTeam(){ // 前面的代码保持不变... let result = await fetch(sql, { method:"post", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify(params) }) .then(resp => resp.json()) // 改成解析JSON格式返回值 .then(resp=>{ console.log(resp); // 假设后端返回success字段表示业务处理成功 if(resp.success){ alert("your email is sent"); // 清空输入框 $Q('.invitation-data.invite-email').slice(0,20).map((i,ind)=>{ i.value= ""; }); } else { alert("Failed to send invitations: " + (resp.message || "Unknown error")); } return resp; }) .catch(e=>{ console.log(e); alert("Failed to send invitation emails"); }); }
内容的提问来源于stack exchange,提问作者11lll
相关产品推荐
相关产品推荐

