javascript中的异步编程

时间:2015-05-15 07:18:47

标签: javascript asynchronous

我有一个if resp, ok := w.(Response); ok { // resp is of type Response, you can access its Status field fmt.Println(resp.Status) // <--- properly prints status } 函数,里面我想调用一个函数说load(),它下载一个xml文件。下载完成后,我必须调用一个函数说download()来解析下载的xml文件。解析完成后,我必须调用另一个函数parseXML()。能否指导我如何以最简单的方式实现这一目标?

2 个答案:

答案 0 :(得分:0)

您可以使用回调

load(params , function(){
  download(params, function(){
      parseXML(params, function(){
        processParsedXMLFile(params, function(){
           ...
        })
      })
   })
})

答案 1 :(得分:0)

JavaScript中的异步代码有两种常见的方法 - 回调和承诺。

SO上有很多关于回调的帖子,Javascript callback after json parse显示了详细解释的好例子。

对于promises:http://wiki.commonjs.org/wiki/Promises/Ahttps://www.promisejs.org/是阅读Promises的良好起点,现在更常见的是在JavaScript中编写异步代码。

根据您运行脚本的位置,您可能需要包含软件包/库以支持promise:

使用promises看起来像跟随(假设每个调用都返回在操作完成时满足的promise):

download()
   .then(function(data){/* parse XML here */})
   .then(function(data){/* process parsed XML*/ });
相关问题