处理node.js嵌套回调的最佳方法是什么?

时间:2018-06-16 03:55:03

标签: node.js callback nested

我有两个回调函数,一个是getContactList,它只是获取所有联系人的id。第二个是getContactDetail,它通过给定的联系人ID返回联系人详细信息。我需要主代码中的每个详细信息的联系人列表,但它返回空列表。以下是简化代码。 (CONTACT_LIST_FUNCTION和CONTACT_DETAIL_FUNCTION是第三方功能)。

/*** main code ****/
getContactList(function(contact_list_with_detail) {
    // show each contact with detail
});

// callback function 1
var getContactList = function(callback) {
    var contact_list_with_detail = [];
    CONTACT_LIST_FUNCTION({PARAMS}, function(err, contact_list) {
        if (err) throw err;
        for (var i=0; i < contact_list.length; i++) {
            getContactDetail(contact_list[i].id, function(contact_detail) {
                contact_list_with_detail.push(contact_detail);
            });
        }
        callback(contact_list_with_detail);
    });
});

// callback function 2
var getContactDetail = function(contact_id, callback) {
    CONTACT_DETAIL_FUNCTION({PARAMS}, function(err, contact_detail) {
        if (err) throw err;
        callback(contact_detail);
    });
}

0 个答案:

没有答案