我尝试比较异步函数的结果如下:
WritableMap res;
res = ServerAuthenticate.signIn(userName, userPass);
Log.d(TAG, " --> res.getString(status).length(): " + res.getString("status").length());
Log.d(TAG, " --> res.getString(status): " + res.getString("status"));
Log.d(TAG, " --> res.getString('status') == 'OK': " + (res.getString("status") == "OK"));
上面的代码给出了以下控制台输出:
D/!NativeModules( 5899): --> res.getString(status).length(): 2
D/!NativeModules( 5899): --> res.getString(status): OK
D/!NativeModules( 5899): --> res.getString('status') == 'OK': false
res.getString("status")
值为OK
字符串,但当我将其作为res.getString("status") == "OK"
进行比较时,它会返回false
。实际上我在results.putString("status", "OK");
函数中使用了ServerAuthenticate.signIn()
的方法。
我想知道是否有办法比较WritableMap
的属性值?
答案 0 :(得分:1)
这是标准的Java String equals问题。请尝试res.getString("status").equals("OK")
或更好地确保无效安全"OK".equals(res.getString("status"))
。