我对javascript有点新,并且很难弄清楚如何在一些现有代码中处理回调。
设定: 我有一个包含很多辅助函数的util.js 功能
getComments(packageId, successCallback, failCallback, userId)
和
function getActionMemo(packageId, versionId, successCallback, failCallback)
将ajax调用的结果返回给successCallback。
我需要做的,以及我正在努力解决的问题,是一个积累辅助函数数据并使其更有趣的函数,我有一个特定的命令,我需要调用辅助函数因为有一些数据依赖。
我可以通过基本上将辅助函数中的代码复制到一个新函数并从ajax调用中链接.done来解决这个问题,但这看起来像是一种可怕的做法。有更清洁的方式吗?
谢谢, 埃林
答案 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事件上重用。有了闭包,一切都会在停止的地方重新启动。