在Promises堆栈中等待基于回调的函数

时间:2016-04-13 21:30:12

标签: javascript google-visualization q

通过阅读和反复试验,我无法找到将第三方异步,基于回调的功能集成到Promises工作流程中的最佳方法。希望得到一些指示。

我正在使用Google Charts和基于Python的API构建仪表板。我尝试使用Goog's Query approach整合Google电子表格数据:

// Create a new Query object      
var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);    

// Send the query with a callback function.
query.send(handleQueryResponse);

function handleQueryResponse(response) {
  // Called when the query response is returned.
  ...
}

对于每张图表,我都试图使用Q.js创建一堆Promise:

// Streamlined example
Q.fcall(collectData)
.then(drawChartUsingData)
.done();

问题是query.send()内对collectData的调用是异步的,因此在我调用drawChartUsingData时,结果不会保存到窗口中。我需要链中的下一个Promise等待回调完成。我没有等待返回值,因为我将其写入全局变量。

提前感谢您的帮助。

PS。我是一名Python人员,正在与JS达成协议,所以请原谅任何基本错误或缺乏对JS最佳实践的赞赏。

0 个答案:

没有答案