Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用映射并将对象传递给后续函数调用_Javascript_Node.js_Promise_Bluebird - Fatal编程技术网

Javascript 使用映射并将对象传递给后续函数调用

Javascript 使用映射并将对象传递给后续函数调用,javascript,node.js,promise,bluebird,Javascript,Node.js,Promise,Bluebird,我有一些这样的代码: var downloadFiles = function () { console.log('downloading files'); aFtpClient. listAsync(). then(processListing). map(function (object) { return processItem(object); }).

我有一些这样的代码:

var downloadFiles = function () {
        console.log('downloading files');
        aFtpClient.
        listAsync().
        then(processListing).
        map(function (object) {
            return processItem(object);
        }).
        then(downloadItem).
        catch (TypeError, function (e) {
            console.dir('arse' + e);
        }).
        catch (Promise.RejectionError, function (e) {
            console.error("unable to read file, because: ", e.message);
        });
        console.log('after downloading files');
    };
processListing
返回具有源和目标属性的对象数组。我使用
map
处理数组并调用
processItem
。有没有办法将映射的对象传递给
下载项

我同意

.map(function (object) {
    return processItem(object).then(function(processResult) {
        return {input: object, result: processResult};
    });
})

现在
downloadItem
可以访问每个已处理项目的
.input
.result

您的意思是要访问
downloadItem
中的
对象,而不仅仅是
processItem(对象)的结果
?是的,因为对象包含源ie/download from source和downloadItem以放置到destinationNice,值得一提的是,
.bind
还可以用于为Bluebird中的承诺链提供上下文,这在类似的情况下可能是有益的。是的,也可能是有益的,尽管我认为它稍微模糊了代码。另外,我认为它不能很好地与
地图配合使用
谢谢,我今天正在做类似的事情