如何在没有* bluebird的情况下调试一个宣传的mongoose查询

时间:2017-07-17 23:21:54

标签: node.js mongodb mongoose

我正在尝试运行一个mongoose查询并将其写入控制台而不安装另一个像bluebird这样的库。我在文档中找不到这个。

以下是查询:

    final View bottomSheetView = findViewById(R.id.bottomSheetLayout);
    listView = (ListView) bottomSheet.findViewById(R.id.listView);
    buttomSheet = BottomSheetBehavior.from(bottomSheetView);
    btnShowListView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            listView.setVisibility(View.VISIBLE);
            bottomSheetView.requestLayout();
            bottomSheetView.invalidate();
            bottomSheet.setState(BottomSheetBehavior.STATE_EXPANDED);
        }
   });

我称之为的背景:

function activityH(){
        return setRecords.find({'item.title': 'marzipan'}
                                    , 'item.title item.quantity').exec();
    }

所有先前的活动都在完成,但即使我的查询应该有结果,也没有任何记录。我觉得这是一个非常基本的问题,但我已经找了几个小时试图找到一个解决方案,如果这是一个重复,原来的答案很难搜索!

我绝对需要蓝鸟这样做吗?例如。这个blog post 谢谢

1 个答案:

答案 0 :(得分:0)

您可以编写一个小的日志功能包装来帮助您。像

这样的东西
function log(data) {
    console.log(data);
    return data;
}

然后将其添加到Promise链。

....[a bunch of promises]
   .then(log)
   .then(activityF)
   .then(log)
   .then(activityG)
   .then(log)
   .then(activityH)
   .then(log)

如果您想要一些默认消息,您还可以传递消息字符串

function log(msg) {
    return function(data) {
        console.log(msg, data);
        return data;
    }
}

然后会添加到链中,如:

activityA()
   .then(log('activityA'))
   .then(activityB)
   .then(log('activityB'))