繁体   English   中英

使Javascript调用同步

[英]Making Javascript Calls Synchronous

我对javascript较新,并且很难弄清楚如何在一些现有代码中使用回调。

设置:我有一个util.js,其中包含很多辅助函数,例如function

getComments(packageId, successCallback, failCallback, userId)

function getActionMemo(packageId, versionId, successCallback, failCallback)

将ajax调用的结果返回给successCallback。

我需要做的是我正在苦苦挣扎的一个函数,它可以对帮助程序函数的数据进行评估,并使之更加有趣,我需要按特定的顺序调用帮助程序函数,因为其中存在一些数据依赖性。

我可以通过将代码从辅助函数中复制到新函数中并从ajax调用中链接.done来进行破解,但这似乎是一种可怕的做法。 有没有更清洁的方法?

谢谢,艾琳

看起来诺言可以解决您的问题。 请阅读https://www.promisejs.org/

您有一个动作列表,这些动作存储在数组中还是我想的HTML中?

创建一个从0开始的索引。

然后,在函数中,每次启动函数时加1,选择新动作并进行ajax调用。

我曾经遇到过您的情况,如果无法解决问题,将详细说明我使用的方法。

如果有帮助,我最近拿了用C语言为UNIX编写的Rogue游戏的第一版,并重写了它,以便javascript在浏览器中工作。 我使用一种称为延续的技术来等待用户输入密钥,因为在javascript中没有中断。

所以我会有一段这样的代码:

void function f() {

  // ... first part

  ch = getchar();

  // ... second part

}

那将被转化为

function f() {

  // ... first part

  var ch = getchar(f_cont1);

  return;
  // the execution stops here 

  function f_cont1 () {

    // ... second part
  }
}

然后继续存储以在按键事件中重用。 使用闭包,一切将在停止的地方重新开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM