调用服务器方法时MeteorJS意外行为

时间:2016-02-21 22:21:35

标签: javascript node.js meteor gridfs collectionfs

服务器调用的顺序或延迟如何带来不同的行为。代码应该更清楚地解释这一点。

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);

我真的很想知道为什么这种行为会受到超时/序列的影响。

0 个答案:

没有答案