gpt4 book ai didi

javascript - API函数不返回值,即使返回有值

转载 作者:行者123 更新时间:2023-12-05 02:26:50 24 4
gpt4 key购买 nike

我在“saga”文件中有一个函数,它调用 API 以便从数据库中获取一些信息

function* timeTableRequest(action) {
try {
console.log("checkpoint-N1")
const timetable = yield call(API.requestTimetable(action.id));
console.log("checkpoint-N2");
console.log("timetable", timetable);
yield put(timeTableRequestSuccess(timetable));
}
catch (error) { yield put(timeTableRequestError(error)) }
}

如您所见,有不同的“console.log()”以检查我的代码何时到达。同样在此函数中,您可以看到它进行了 API 调用 -> API.requestTimetable(action.id)这个函数转到我的 API 文件夹,它实现了这个功能:

export const requestTimetable = async (id) => {
const response = await fetch("https://xxx.xxxxxxx.com/admin/shop/" + localStorage.getItem("shop-id") + "/timetable/" + id + "/slot", {
method: "GET",
headers: { "Authorization": `Bearer ${JSON.parse(APIauth.getItem())}` }
});
if (!response.ok) { const errorResponse = await response.json(); throw new Error(errorResponse.message) }
const requestedTimetable = await response.json();
console.log("requestedTimetable", requestedTimetable)
return requestedTimetable;
};

这个函数一切顺利,甚至你可以看到 console.log 你可以读取这个函数的返回值。然而,当它必须返回时,什么也不会返回。

Console.log

最佳答案

syntax for callcall(fn, ...args)。您应该传递一个函数及其参数。然而,您实际上在这里所做的是立即调用该函数并将其返回值传递给 call

因此,您必须将 call(API.requestTimetable(action.id)) 更改为 call(API.requestTimeTable, action.id)

关于javascript - API函数不返回值,即使返回有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73622445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com