服务器调用的顺序或延迟如何带来不同的行为。代码应该更清楚地解释这一点。
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(未找到)
错误:“队列”失败 [404] 未找到 [404] [未定义],错误:cfs_upload-http.js:351 处 cfs_upload-http.js:77 处失败 [404] 未找到 [404] [未定义] 下划线.js:750 在 XMLHttpRequest.xhr.onreadystatechange (cfs_upload-http.js:200)
如果我尝试做这样的事情:(没有给出错误)
Meteor.call("editProfile", this, info);
setTimeout(function () {
if (picture) {
Images.insert(picture);
}
},2000);
我真的很想知道为什么这种行为会受到超时/序列的影响。