Javascript 何时使用多个then语句,而不是将代码块放入一个then语句中

Javascript 何时使用多个then语句,而不是将代码块放入一个then语句中,javascript,Javascript,我有一个异步返回数据的api调用,我有两个方法,在调用发生后执行一些操作,但它们自己不会创建新的承诺 做 const foo=新承诺(…); 然后(()=>{ 控制台日志(“foo”); 控制台日志(“bar”) }) 提供福利超过 const foo=新承诺(…); 福 。然后(()=>console.log(“foo”)) 。然后(()=>console.log(“bar”)) ? 我得到,如果第一个thenable返回一个承诺,链接另一个then语句是有用的,但是当第一个thenabl

我有一个异步返回数据的api调用,我有两个方法,在调用发生后执行一些操作,但它们自己不会创建新的承诺

const foo=新承诺(…);
然后(()=>{
控制台日志(“foo”);
控制台日志(“bar”)
})
提供福利超过

const foo=新承诺(…);
福
。然后(()=>console.log(“foo”))
。然后(()=>console.log(“bar”))
?

我得到,如果第一个thenable返回一个承诺,链接另一个then语句是有用的,但是当第一个thenable不返回承诺时,链接then语句也是有益的吗

我假设对错误的更精细的控制可以是:

const foo=新承诺(…);
福
。然后(()=>抛出错误(“Whoopsie”))
.catch(e=>handle(e))
。然后(()=>抛出错误(“雏菊”))
.catch(e=>handle(e))
我得到,如果第一个thenable返回一个承诺,链接另一个then语句是有用的,但是当第一个thenable不返回承诺时,链接then语句也是有益的吗

你所说的回报承诺是什么意思?始终返回承诺,解析程序的结果调用当前值(模错误)

考虑这一点:

p = new Promise( r => r('foo'));
p.then((val) => {console.log(val); return val + 'bar'})
 .then(console.log)
 .then(console.log);
/* output:
foo
foobar
undefined
*/
  • 使用
    r
    ,promise通过调用promise构造函数中的函数返回的值来“启动链”
  • 之后,对该值调用下一个回调,返回
    'foo'+'bar'
  • 然后传入
    console.log
    ,它不返回任何内容(即返回
    undefined
  • 最后,
    undefined
  • 承诺总是会被返回,这就是为什么
    可以反复调用
    。无论是链接<代码>,还是<>代码>调用VS将你的整个函数放在一个大的回调中,这是一个更大的问题,你是否希望你的函数在计算过程中能够被“中断”或“不”。
    我得到,如果第一个thenable返回一个承诺,链接另一个then语句是有用的,但是当第一个thenable不返回承诺时,链接then语句也是有益的吗

    你所说的回报承诺是什么意思?始终返回承诺,解析程序的结果调用当前值(模错误)

    考虑这一点:

    p = new Promise( r => r('foo'));
    p.then((val) => {console.log(val); return val + 'bar'})
     .then(console.log)
     .then(console.log);
    /* output:
    foo
    foobar
    undefined
    */
    
  • 使用
    r
    ,promise通过调用promise构造函数中的函数返回的值来“启动链”
  • 之后,对该值调用下一个回调,返回
    'foo'+'bar'
  • 然后传入
    console.log
    ,它不返回任何内容(即返回
    undefined
  • 最后,
    undefined

  • 承诺总是会被返回,这就是为什么
    可以反复调用
    。是否连锁
    然后
    调用,还是将整个函数放入一个大回调中,更重要的是您是否希望函数能够“中断”在计算过程中,

    我认为很多都取决于控制顺序是否对你很重要:“雏菊是一个奇怪的信息。”我认为这在很大程度上取决于对测序的控制对你来说是否重要:)Daisy Whoopsie总是一个奇怪的信息;)