该代码的作品,但我想知道如果我是超过承诺。我是否承诺用以下代码?
我有这个终极版动作
import Promise from 'bluebird';
const uploadAsynch = Promise.promisify(api.upload);
uploadFiles : function(data, dispatch){
var data = {
ep:"EP_UPLOAD",
payload: {
files: data.files,
profile: data.profile
}
}
uploadAsynch(data).then((result)=>{
dispatch({type: FILES_UPLOADED})
});
},
api.upload如下
import axios from 'axios';
upload : function(data, callback){
var files = new FormData();
for(var i=0; i<data.payload.files.length; i++){
files.append('files', data.payload.files[i], data.payload.files[i].name);
}
axios.post(apiEndpoints[data.ep], files, {
headers: {
'accept': 'application/json',
'Accept-Language': 'en-US,en;q=0.8',
'Content-Type': `multipart/form-data; boundary=--*`,
}
})
.then((response) => {
callback(null, response)
}).catch((error) => {
callback(error)
});
},
所以我不知道。如果Axios是一个基于promise的请求客户端,那么在动作中用蓝鸟包装它是否正确?
你是什么意思*在*看好?你真的需要'上传'是基于回调的吗? – Ryan
这就是我想知道的...应该只是一个回报,然后用一个开关处理响应? – Ando
不确定你的意思是“用开关”。不过,如果你不需要你的'api.upload'是基于回调的,那么最好让它只返回一个承诺,是的。 – Ryan