服务器调用的顺序或延迟如何带来不同的行为。代码应该更清楚地解释这一点。
let editProfile = function (e) {
e.preventDefault();
let info = {};
info.username = $(".editProfile #usernameInput").val();
info.email = $(".editProfile #emailInput").val();
let picture = $(".editProfile #imageInput")[0].files[0];
if (picture) { <-|
Images.insert(picture); |Problem
} |
Meteor.call("editProfile", this, info); <-|
};
这很好但是当我尝试更改这些调用的顺序时,我在控制台中出错。
Meteor.call("editProfile", this, info); <-|
if (picture) { |Error is given
Images.insert(picture); |
} <-|
浏览器出错:
无法加载资源:服务器响应状态为404(未找到)
错误:&#34;队列&#34;失败[404]未找到[404] [未定义],错误:失败[404]未找到[404] [undefined] 在cfs_upload-http.js:351 在cfs_upload-http.js:77 at underscore.js:750 在XMLHttpRequest.xhr.onreadystatechange(cfs_upload-http.js:200)
如果我尝试做这样的事情:(没有给出错误)
Meteor.call("editProfile", this, info);
setTimeout(function () {
if (picture) {
Images.insert(picture);
}
},2000);
我真的很想知道为什么这种行为会受到超时/序列的影响。