weixin_33698043 2017-04-17 11:15 采纳率: 0%
浏览 7

等待,文件准备就绪

Some file is creating in backend (up to 1min). I wrote a function to check if file is ready

function check_for_file() {
    $.ajax({
    url: '/check/', // check if file exists
    success: function(data) {
        location.replace('/hello/'); // redirect to download
        return true;
    },
    failure: function(data) {
        alert('Got an error');
    }
    });
    return false
}

a = check_for_file();
}
// a= false
// while (a == false) {
//     a = check_for_file();
// }

console.log(a);

This works fine. But I need to make a loop which will check while file is not ready. What should I do?

!!!!!!!! Look at first comment for an answer

  • 写回答

1条回答 默认 最新

  • George_Fal 2017-04-17 11:21
    关注

    a = check_for_file(); will return immediately.

    You cannot run async and return a result.

    failure is not an event by the way - it is called fail or error

    Call the function afgain in the success, error/fail or done after testing file is not ready using a setTimeout IN the success/done or failure depending on how you pass "file not found yet"

    function check_for_file() {
      $.ajax({
        url: '/check/', // check if file exists
        success: function(data) {
          if (data.fileExists) { // result from server
            location.replace('/hello/'); // redirect to download
          }
          else {
            setTimeout(check_for_file,2000); // try again
          }
        },
        error: function(data) {
          alert('Got an error');
        }
      });
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀