Javascript 在请求承诺中链接多个调用

Javascript 在请求承诺中链接多个调用,javascript,node.js,express,request,Javascript,Node.js,Express,Request,如何在expressjs路由中链接多个然后与相应的捕获 我当前的用例是multupart表单的一部分update我需要将图像上传到云,并通过API更新细节,然后删除以前的图像。 有3个不同的电话。我收到错误:发送邮件后无法设置邮件头。如果有任何错误。看起来res.json和next正在产生一些问题 对于我的场景,是否更倾向于使用下面的方法 var rp = require('request-promise'); var multer = require('multer'); var stor

如何在expressjs路由中链接多个
然后
与相应的
捕获

我当前的用例是
multupart表单的一部分
update我需要将图像上传到云,并通过API更新细节,然后删除以前的图像。 有3个不同的电话。我收到
错误:发送邮件后无法设置邮件头。
如果有任何错误。看起来
res.json
next
正在产生一些问题

  • 对于我的场景,是否更倾向于使用下面的方法

    var rp  = require('request-promise');
    var multer  = require('multer');
    var storage = multer.memoryStorage();
    var upload = multer({ storage: storage });
    
    app.post('/api/update-details', upload.single('image'), function(req, res, next){
    
       function uploadImage(){
           //uploadToCloud is a dummy function to denote fileupload
           uploadToCloudApi(function(err,data){
               if(err) {
                    res.json({'msg': 'Image Upload Failed'})
               }
    
           })
       }
    
    
       function updateDetails(){
          updateApi(function(err,data){
               if(err) {
                    res.json({'msg': 'Image Upload Failed'})
               }
    
           })
       }
    
       function deletePreviousImage(){
            deleteFromCloudApi(function(err,data){
               if(err) {
                   log.error(err);
               }
    
           })
           next();
       }
    
       function updateSiteError(){
    
       }
    
       var options = { // url and other options };
        rp(options)
            .then(uploadImage)
            .then(updateDetails)
            .then(deletePreviousImage)
            .catch(updateSiteError); // How to write proper catch methods for each function ?
    
    
    })
    

  • 如果我理解正确的话,您向我们展示的代码与您正在尝试的代码不同,但不是您正在尝试的代码。很难帮你这么做。
    javascript
    在问题中似乎没有
    返回
    一个
    承诺
    上传图像
    上传详细信息
    删除以前的图像
    函数调用中的值
    updateSiteError
    未定义?如果我理解正确,您向我们展示的代码与您尝试的代码不同,但与您尝试的代码不同。很难帮你这么做。
    javascript
    在问题中似乎没有
    返回
    一个
    承诺
    上传图像
    上传详细信息
    删除以前的图像
    函数调用中的值<代码>更新错误
    未定义?