我为我的任务选择了node.js,因为它有官方的Google API客户端库,并且可以自然地使用JSON.但是我正在努力应对异步的idioma,而我在互联网上发现的指南并没有涵盖我的情况.
所以,在这个例子中,我试图读取两个文件的内容并将它们传递给一个方法:
var fs = require('fs');
// Some more unrelated vars here
function readFiles(callback) {
fs.readFile('./refresh_token', 'utf8', function(err,refreshToken) {
if (err) throw err;
callback(refreshToken);
});
fs.readFile('./access_token', 'utf8', function(err,accessToken) {
if (err) throw err;
callback(accessToken);
});
};
function handleResults(refreshToken, accessToken) {
oauth2Client.setCredentials({
refresh_token: refreshToken,
access_token: accessToken
});
proceedNext(oauth2Client);
};
function proceedNext(credentialsObject) {
// do some more job
};
readFiles(handleResults);
Run Code Online (Sandbox Code Playgroud)
显然它不起作用,因为我在第一个位置做了两次回调.但是,以异步方式执行两个方法的正确方法(node.js方式)是什么,将两个结果传递给处理方法,然后只有在完成之后才继续进行?
我试过这样的事情:
function readFiles() {
fs.readFile('./refresh_token', 'utf8', function(err,refreshToken) {
if (err) throw err;
fs.readFile('./access_token', 'utf8', function(err,accessToken) {
if (err) throw err; …Run Code Online (Sandbox Code Playgroud)