小编xia*_*glu的帖子

resolve(soable)和resolve('non-thenable-object')之间有什么区别?

我试图理解之间的差异resolve(thenable)resolve('non-thenable-object').

在下面的示例中,使用promise而不是thenable因为promise也thenable可以更容易理解.

demo1的: resolve(promise)

let resolvePromise = new Promise(resolve => {
  let resolvedPromise = Promise.resolve()
  resolve(resolvedPromise)
})
resolvePromise.then(() => {
  console.log('resolvePromise resolved')
})
let resolvedPromiseThen = Promise.resolve().then(res => {
  console.log('promise1')
})
resolvedPromiseThen
  .then(() => {
    console.log('promise2')
  })
  .then(() => {
    console.log('promise3')
  })
Run Code Online (Sandbox Code Playgroud)

结果:

  • promise1
  • promise2
  • resolvePromise已解决
  • promise3

DEMO2: resolve('non-thenable-object')

let resolvePromise = new Promise(resolve => {
  resolve('non-thenable-object')
})
resolvePromise.then(() => {
  console.log('resolvePromise resolved')
})
let resolvedPromiseThen = Promise.resolve().then(res => {
  console.log('promise1')
}) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise

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

在标签之间按Enter键后自动缩进

请查看下面的GIF:

在此处输入图片说明

我正在使用Visual Studio Code。通过按EnterCtrl+ Shift+ Enter。我可以在下一行自动缩进。

因此,我猜想有一种更方便的方法或程序包,只需按一下即可完成Enter

auto-indent visual-studio

6
推荐指数
2
解决办法
1455
查看次数

函数的 typescript 交集类型

我正在使用打字稿并遇到了一些问题。最简单的演示是:

type g = 1 & 2 // never
type h = ((x: 1) => 0) & ((x: 2) => 0) // why h not never
type i = ((x: 1 & 2) => 0)// why x not never
Run Code Online (Sandbox Code Playgroud)

我不明白为什么 typeh不是,而type 中的neverparam不是xinever

type e = (((x: 1) => 0) & ((x: 2) => 0)) extends (x: infer L) => 0 ? L : never; //  why e is 2 not never or 1? …
Run Code Online (Sandbox Code Playgroud)

typescript

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

Typescript 通过联合推断通用参数类型

我已经在下面的代码上苦苦挣扎了几个小时。不明白为什么e4不是?stringString

type PropConstructor4<T = any> = { new(...args: any[]): (T & object) } | { (): T }
type e4 = StringConstructor extends PropConstructor4<infer R> ? R : false // why string not String ???
Run Code Online (Sandbox Code Playgroud)

我在下面进行了测试,我想我可以理解。

type a4 = StringConstructor extends { new(...args: any[]): (infer R & object) } ? R : false // String
type b4 = StringConstructor extends { (): ( String) } ? true : false // true
type c4 = StringConstructor extends …
Run Code Online (Sandbox Code Playgroud)

typescript

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