我正在RN应用程序中实现指纹扫描,为此我找到了一个不错的教程,但是其中的代码具有我从未使用过的语法-yield call()
,但是我用它搜索了一下,却找不到正确的解释它。这是代码:
if (isFingerPrintSupported === true) {
yield call(KeychainService.setCredentials, user_name,
JSON.stringify({ password }));
}
在这种情况下,还有其他可以使用的东西吗?如果没有,那么我该如何导入或安装它才能使其正常工作?
yield
可以在生成器函数内部使用,并且它可以随时以异步方式暂停和恢复函数。另外,它还有助于从生成器函数返回值。
检查此document以获取更多信息。
call
是redux-saga效果,有助于进行异步调用。检查this了解更多信息。
import { call } from 'redux-saga/effects'
function* authorize(user, password) {
try {
const response = yield call(/** Api call */, user, password)
...
} catch(error) {
...
}
}
注
如果您不想使用yield
,则可以使用axios
或fetch
直接使用参数调用API。
希望这对您有所帮助。随时提出疑问。