在“请求”中调用模块的本地函数作为回调

时间:2016-03-20 02:57:03

标签: node.js express module request asynccallback

在我的主要代码中,我执行以下操作:

  public  String Create_ex="CREATE TABLE ExerciserEasy"
        + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, Workout VARCHAR, ExerciseOne VARCHAR,"
        +"ExerciseTwo VARCHAR, ExerciseThree VARCHAR, ExerciseFour VARCHAR );"

   public ArrayList<String> getExercises(){
    ArrayList<String> list = new ArrayList<String>();
    SQLiteDatabase db = this.getReadableDatabase();
    db.beginTransaction();
    try {
        String selectQuery = " Select * from " + Table_ex1;
        Cursor cursor = db.rawQuery(selectQuery, null);
        if(cursor.moveToFirst()){
            do{
                list.add(cursor.getString(2));
                list.add(cursor.getString(3));
                list.add(cursor.getString(4));
                list.add(cursor.getString(5));
                Log.d("HIITtimer", ""+cursor.getCount());

            }while(cursor.moveToNext());
        }
        db.setTransactionSuccessful();
    }catch (Exception e){
        e.printStackTrace();
    }finally {

        db.endTransaction();
        db.close();


    }
    return list;


}

var module = require('./module') module.FooA(module.FooB); 包含下一个代码:

module.js

问题是,即使条件符合,var request = require('request'); //using of npm "request" exports.FooB = function(data){ /*operations on data here*/ }; exports.FooA = function(callback){ var url = some_link; request(url, function (error, response, body) { if (!error && response.statusCode == 200) { callback(body); }; }); }; 显然也不会运行。 callback(body)后跟var result = request(url)完成了这项工作,但据我所知,显然不会像回调一样,并会产生麻烦。

在这种情况下定义回调函数的正确方法是什么?我是否需要,或者它实际上是同步的,我没注意到它?

1 个答案:

答案 0 :(得分:2)

使用带错误的第一个函数回调参数,这是node.js核心中的默认值,并且是Google的项目函数。

和@ShanSan一样,请使用 console.log console.error console.trace 进行调试。

示例:

isEmpty()