我对ES6相当陌生(用于与Jquery和所谓的回调地狱一起使用)。我得到了此代码(有效):
feti(api_login, tudo);
function feti(caminho, dados) {
fetch(caminho, {
method: 'POST',
headers: { "Content-Type": "application/json" },
body: JSON.stringify(dados)
})
// captura o erro
.then(erroAPI)
// converte o sucesso em JSON
.then(response => response.json())
// disponível para uso
.then((data, outraFunc) => {
resposta = data.qscoluna;
porTod(resposta);
});
}
function porTod(valor){
let api_login_suc = valor[0];
salvaTudo(api_login_suc);
}
第一个函数是使用提取(feti)的函数,第二个函数是使用第一个函数(porTod)的响应。
在我的站点中,我使用了许多API调用,因此我想使“ feti”函数成为可重用的函数。问题是:如何在不调用第二个函数的情况下从第二个函数中使它成为必需的(就像我现在正在做的那样?)?如果我只是尝试从fetch中返回结果并在第二个函数中使用它,我将得到未定义的响应,这与预期的一样。我相信某种承诺会是理想的,但是我找不到与自己的问题类似的问题,而且我陷入了困境。如果有人能指出我正确的方向,那就太好了。只需“搜索此内容”将有很大帮助!
谢谢:D
答案 0 :(得分:1)
只需返回您要处理的承诺:
function feti(caminho, dados) {
return fetch(caminho, {
method: 'POST',
headers: { "Content-Type": "application/json" },
body: JSON.stringify(dados)
})
// captura o erro
.then(erroAPI)
// converte o sucesso em JSON
.then(response => response.json())
}
然后,而不是只打电话给feti(api_login, tudo);
feti(api_login, tudo).then(data => {
const resposta = data.qscoluna;
porTod(resposta);
});