使Javascript调用同步

时间:2015-02-17 15:19:49

标签: javascript ajax callback

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

设定: 我有一个包含很多辅助函数的util.js 功能

getComments(packageId, successCallback, failCallback, userId)

function getActionMemo(packageId, versionId, successCallback, failCallback)

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

我需要做的,以及我正在努力解决的问题,是一个积累辅助函数数据并使其更有趣的函数,我有一个特定的命令,我需要调用辅助函数因为有一些数据依赖。

我可以通过基本上将辅助函数中的代码复制到一个新函数并从ajax调用中链接.done来解决这个问题,但这看起来像是一种可怕的做法。有更清洁的方式吗?

谢谢, 埃林

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

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

我曾经遇到过你的情景,并会详细说明我使用的方法,如果这对你没有帮助。

答案 2 :(得分:0)

如果它有所帮助,我最近在C中为UNIX编写了第一个用于UNIX的Rogue游戏,并将其重写为javascript以在浏览器中工作。我使用了一种名为continuation的技术,能够等待用户输入密钥,因为在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
  }
}

然后存储继续以在keypressed事件上重用。有了闭包,一切都会在停止的地方重新启动。