产生异步执行javascript
Yield async execution javascript
我想用代码来说明这个问题:
var async1 = f1(params, cb);
var async2 = f2(params, cb);
现在我可以通过瀑布异步进程调用async1,如下所示:
async.waterfall([
function(cb){
async1(params, cb);
async2(params, cb);
},
//default process
function(result, cb){
//some code here and then
cb(null, result);
}
], done);
我的问题是如何等待async1
完成done
回调,以便调用async2
。这两个任务都需要运行默认进程和已完成的回调。
如果有一种方式/设计模式,我可以运行async1
,并且在它完成后,我可以在相同的瀑布异步函数中运行async2
?两个异步函数都是完成默认进程和完成回调所必需的。
谢谢。
您可以通过使用回调函数来实现这一点。考虑以下内容:
// When you're defining this function, give it a callback parameter
function async1(params, cb, callback){
...
// Call the callback function when this process is complete
callback();
}
...
// Then call your functions something like this
async1(params, cb, function(){
async2(params, cb);
});
这也可以通过使用Promises来实现。承诺是相同的想法,只是做得有点不同。
相关文章:
- JavaScript执行暂时挂起页面
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 如何在使用jQuery.html()时防止javascript执行
- 如何打开一个新窗口或选项卡,并将其提供给javascript执行
- 如何在Ajax加载新内容时停止JavaScript执行
- 如何使用xpath和Javascript执行器打印文本
- cakehp2.x用javascript执行控制器
- 如何在不使用javascript执行的情况下为函数分配参数
- Javascript执行顺序错误
- Javascript执行顺序和回调
- 如何在Javascript执行后防止浏览器锁定
- JavaScript执行从函数声明开始,而不是从$(document).ready()开始
- 在asp.net页面中显示javascript执行过程中的加载图标
- 基于浏览器窗口大小的条件 JavaScript 执行
- 使用 JavaScript 执行一行 PHP(不包括 PHP 文件)
- Dom 解析和 JavaScript 执行
- 为什么通过javascript执行php可以工作
- JavaScript执行路径
- 从javaScript执行服务器端代码
- 如何使用Javascript执行客户端web抓取