我的序列是:
(请注意我使用的是Dropbox API v2)
我的代码:
我正在使用request-promise-native库。
src
从我的理解(纠正我,如果我错了)承诺并行运行并返回一个超时值(无论哪个承诺首先解决)。如何按特定顺序运行promises?我是否在最佳实践中实施承诺?
答案 0 :(得分:1)
如果在链中使用,您的承诺将按顺序工作。
我建议你也使用ES8 async/await
功能来获得更漂亮的代码
let upload = async (req,res) => {
let options = {
method: 'POST',
uri: 'https://content.dropboxapi.com/2/files/upload',
headers: {
'Authorization': 'Bearer Token here',
'Dropbox-API-Arg': "{\"path\": \"/test/"+req.file.originalname+"\",\"mode\": \"overwrite\",\"autorename\": true,\"mute\": false}",
'Content-Type': 'application/octet-stream'
},body: fs.createReadStream(`uploads/${req.file.originalname}`)
};
try {
const request = await rp(options);
const dlf = await _deleteLocalFile(req.file.originalname);
const shareableLink= await _generateShareableLink(req.file.originalname);
const sendedResponse = await sendJsonResponse(res, 200, shareableLink);
} catch(e) {
await sendJsonResponse(res, 500, err);
}
}