小编Bla*_*man的帖子

将我的 API 令牌存储在本地存储中是将令牌括在双引号中

当我的 API 返回会话令牌时,我使用以下函数将其保存在本地存储中:

export const storeItem = (key: string, item: any) => {
  if (!localStorage) return;

  try {
    return localStorage.setItem(key, JSON.stringify(item));
  } catch (err) {
    console.error(`Error storing item ${key} to localStoragee`, err);
  }
};
Run Code Online (Sandbox Code Playgroud)

我调用我的 React Redux 操作:

storeItem('authToken', resp.data.token);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当令牌保存在本地存储中并且我在 chrome 开发工具中查看它时,令牌会用双引号引起来,如下所示:

"abc123"
Run Code Online (Sandbox Code Playgroud)

然后,当我将查询字符串中的这个令牌传递给我的 API 时,它看起来像:

token="abc"
Run Code Online (Sandbox Code Playgroud)

(但是双引号是用%22编码的)

为什么会发生这种情况?我该如何删除这些引号?

更新 我正在构建这样的查询字符串:

let authToken = localStorage.getItem('authToken');
let url = API_ROOT + '/sessions/destroy?token=' + authToken;


export const getItemFromStorage = (key: string) => {
  if (!localStorage) return;

  try {
    return JSON.parse(localStorage.getItem(key));
  } …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

1
推荐指数
1
解决办法
2053
查看次数

从 Scala 2.9 升级到 2.13.2 时出现类型不匹配错误

我最近复活了一个用 scala 2.9 编写的旧库,并且我使用 scala 2.13.2 创建了一个新的 scala 项目

我收到如下错误:

type mismatch;
found   : scala.collection.mutable.Buffer[Any]
[error]  required: Seq[Any]
Run Code Online (Sandbox Code Playgroud)

2.9 到 2.13.2 之间是否有一个特定的变化,不涉及隐式转换序列或可能解决许多这些类型的编译错误的东西?

我不得不在我的.toSeq许多函数返回语句中添加Buffer[Any] 的值,这些语句需要作为参数传递给需要 Sequence 的函数。

scala

1
推荐指数
2
解决办法
245
查看次数

如何在ZIO中执行try and catch?

我使用 ZIO 的第一步,我尝试使用兼容的 ZIO 版本转换此 readfile 函数。

下面的代码片段可以编译,但我不会关闭 ZIO 版本中的源代码。我怎么做?

 def run(args: List[String]) =
    myAppLogic.exitCode

  val myAppLogic =
    for {
      _    <- readFileZio("C:\\path\\to\file.csv")
      _    <- putStrLn("Hello! What is your name?")
      name <- getStrLn
      _    <- putStrLn(s"Hello, ${name}, welcome to ZIO!")
    } yield ()

  def readfile(file: String): String = {
    val source = scala.io.Source.fromFile(file)
    try source.getLines.mkString finally source.close()
  }

  def readFileZio(file: String): zio.Task[String] = {
    val source = scala.io.Source.fromFile(file)
    ZIO.fromTry[String]{
      Try{source.getLines.mkString}
    }
    
  }
Run Code Online (Sandbox Code Playgroud)

io scala zio

1
推荐指数
1
解决办法
581
查看次数

类型必须在 for 理解中对齐是什么意思?

有人可以详细说明当类型必须与 Scala 保持一致以进行理解时这意味着什么吗?

for {
..
..
}
Run Code Online (Sandbox Code Playgroud)

如果调用都返回 Futures 那么它会好吗?只是想了解它什么时候起作用,什么时候不起作用。

scala for-comprehension

1
推荐指数
1
解决办法
61
查看次数

在不同长度的字符串上将字符串编码为其 ASCII 表示形式

我想使用 ASCII 编码在 Go 中对字符串进行编码,就像下面的 C# 函数一样:

public static byte[] StrToByteArray(string str)
        {

            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            return encoding.GetBytes(str);
        }
Run Code Online (Sandbox Code Playgroud)

我知道如何使用以下函数来做到这一点:

import (
        "encoding/ascii85"
    "fmt"
)
func main() {
        dst := make([]byte, 25, 25)
        dst2 := make([]byte, 25, 25)
        ascii85.Encode(dst, []byte("Hello, playground"))
        fmt.Println(dst) 
        ascii85.Decode(dst2, dst, false)
        fmt.Println(string(dst2))
}
Run Code Online (Sandbox Code Playgroud)

目前它的长度被硬编码为 25。如何根据字符串的大小调整长度?

go

1
推荐指数
1
解决办法
319
查看次数

为什么$('someObject').attr("id")[0]在IE中不起作用?

以下jquery代码在firefox中有效,但在IE中返回undefined:

$('someObject').attr("id")[0]
Run Code Online (Sandbox Code Playgroud)

这是为什么?

jquery

0
推荐指数
1
解决办法
184
查看次数

锁定如何应对竞争条件?

在以下场景中,线程等待竞争条件多长时间?

文件将添加到集合中:

 lock(mylock)
 {
     // add to collection
 }
Run Code Online (Sandbox Code Playgroud)

然后以类似的方式将其从集合中移除.

如果一个线程试图在服务将其从集合中删除时尝试添加到集合中,谁赢了?

或者说是竞争条件的点,你无法预测谁获胜?

.net multithreading synchronization locking race-condition

0
推荐指数
2
解决办法
361
查看次数

转换枚举以获取与之关联的值?

我有一个像:

public enum BlahType
{
    blahA = 1,
    blahB = 2,
    blahC = 3
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个值为'blahB'的字符串,是否可以将其强制转换为枚举BlahType以获取值2?

c# enumeration

0
推荐指数
1
解决办法
582
查看次数

如何手动触发我使用jQuery连接的事件?

如何在我之前使用jQuery连接的按钮上手动触发单击事件?

jquery

0
推荐指数
1
解决办法
1148
查看次数

0
推荐指数
1
解决办法
7812
查看次数