通过阅读和反复试验,我无法找到将第三方异步,基于回调的功能集成到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最佳实践的赞赏。