小编And*_*ler的帖子

在node.js中异步处理多个返回

我为我的任务选择了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)

javascript asynchronous node.js

3
推荐指数
1
解决办法
59
查看次数

标签 统计

asynchronous ×1

javascript ×1

node.js ×1