我试图将回调函数作为fetch的参数传递。但是当我在api.js中完成提取时,我不知道如何从index.js运行回调。
index.js
import Api from './Api'
Api.post(callback)
Api.js
class Api {
constructor () {}
static post(callback) {
let url 'dummy';
let data = {
id: 2
}
let request = new Request(url, {
method: 'POST',
body: data,
header: new Headers()
})
fetch(request)
.then(function() {
console.log(request);
})
}
}
export default Api;
答案 0 :(得分:2)
你可以在.then()
:
class Api {
static post (callback) {
const request = /* ... */;
fetch(request)
.then(response => response.json())
.then(result => callback(result)); // if you have a result
}
}
......但你为什么要那样做?尝试回复承诺并履行承诺。这就是promises(以及fetch API)的用途。
class Api {
static post () {
const request = /* ... */;
return fetch(request)
.then(response => response.json());
}
}
// usage:
Api.post().then(callback);
答案 1 :(得分:0)
您只需在then
回调中调用回调:
fetch(request)
.then(function() {
console.log(request);
callback();
})
或链接它:
fetch(request)
.then(function() {
console.log(request);
}).then(callback);