[英]How can I use Redux Saga “call” function when the function name is a reserved word and how do I do chained function calls?
yield action.user.delete() && database.ref(url).remove()
我需要在使用Firebase函數的redux-sagas中的兩個函數中使用call()
。 在action.user.delete()
,我無法yield {delete} = action.user
或call([action.user, delete])
,因為delete
是保留字。 而且在database.ref(url).remove()
,我不知道如何對鏈接函數使用call()
。
有兩種語法選項可將delete
作為保留字處理:
call
方法 delete
函數的引用 這兩個選項如下所示。
對於鏈接函數,您只需將鏈拆分為單獨的調用,然后使用一個調用的結果執行下一個調用。 在兩個delete
示例之后,我提供了一個進行鏈接調用的示例。
import { call } from "redux-saga/effects";
const refResponse = {
remove: () => {
console.log("You removed me!");
}
};
const action = {
user: {
delete: () => {
console.log("You deleted me!");
}
}
};
const database = {
ref: () => {
console.log("Returning ref");
return refResponse;
}
};
export const starter = function*() {
console.log("before call");
yield call([action.user, "delete"]);
console.log("after call using string for function name");
const deleteFunc = action.user.delete;
yield call([action.user, deleteFunc]);
console.log("after call using function variable");
console.log("before start of chained call");
const result = yield call([database, "ref"]);
console.log("before 2nd part of chained call");
yield call([result, "remove"]);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.